[ํ๋ก๊ทธ๋๋จธ์ค] 3์ง๋ฒ ๋ค์ง๊ธฐ(JAVA)
๋ฌธ์ ๐ต๐ซ
https://school.programmers.co.kr/learn/courses/30/lessons/68935?language=java
๋ฌธ์ ์ค๋ช
์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. n์ 3์ง๋ฒ ์์์ ์๋ค๋ก ๋ค์ง์ ํ, ์ด๋ฅผ ๋ค์ 10์ง๋ฒ์ผ๋ก ํํํ ์๋ฅผ return ํ๋๋ก
solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์
์ ํ์ฌํญ
- n์ 1์ด์ 100,000,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
n | result |
45 | 7 |
125 | 229 |
๋ด ํ๐ฆท
class Solution {
public int solution(int n) {
String sam = Integer.toString(n, 3);
String reverse_sam = new StringBuilder(sam).reverse().toString();
int decimal = Integer.parseInt(reverse_sam, 3);
return decimal;
}
}
๋ค์ ์๊ณ ๋ฆฌ์ฆ ํ๊ธฐ๋ก ํ๊ณ ์ฒ์์ผ๋ก ์ ๋๊ฐ ๊ณจ๋ผ์ค ๋ฌธ์ ๋ผ ๊ทธ๋ฐ์ง ์ฌ์ด ๋ฌธ์ ์๋ค!!
์ดํด๋ ฅ์ด ์ ์ข์๋ฐ ํ๋ก๊ทธ๋๋จธ์ค๋ ์์๋ฅผ ์ค๋ช ํด์ค์ ์ข ๋ ํ๊ธฐ ์ข์ ๋ฏ ํ๋ค
10์ง๋ฒ์ 3์ง๋ฒ ์ผ๋ก ๋ฐ๊พธ๊ณ 3์ง๋ฒ์ ๋ค์ง์ด์ ๋ค์ 10์ง๋ฒ์ผ๋ก ๋ฐ๊พธ์ด์ ๋์ถ!!
๋ค์ง๋ ๋ฉ์๋์ธ reverse()๋ ํ์ด์ฌ๊ณผ ๋์ผํ๊ฒ ์๋ค
๊ทธ๋ฆฌ๊ณ Intger,toString()์ผ๋ก ๋ฐ๋ก ์ง๋ฒ ๋ณํํ ์ ์๋ค๋ ๊ฒ์ ์๊ฒ๋์๋ค!!!
๋ค๋ฅธ ์ฌ๋ ํ์ด
class Solution {
public int solution(int n) {
String a = "";
while(n > 0){
a = (n % 3) + a;
n /= 3;
}
a = new StringBuilder(a).reverse().toString();
return Integer.parseInt(a,3);
}
}
๊น๋ํ๋ค!!
๋ณ์๋ช ์ ํ ๋จ์ด๋ก ํ๋๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ผ๋ฏ!!
์ฐธ๊ณ ํ๋ฉด ์ข์ ๊ฐ๋ ๋ค โ๏ธ
- Integer.parseInt(String s) : ๋ฌธ์์ด(s)์ ์ธ์๊ฐ์ผ๋ก ๋ฐ์ผ๋ฉด ํด๋น ๊ฐ์ 10์ง์์ Integer ํ์ผ๋ก ๋ณํ
ex) Integer.parseInt("1004") // 1004 - Integer.parseInt(String s, int radix) : ์ซ์ํ์ ๋ฌธ์์ด์ ์ฒซ๋ฒ์งธ ์ธ์๊ฐ์ผ๋ก ๋ฐ๊ณ ๋ณํํ ์ง์๊ฐ์ ์
๋ ฅํ๋ฉด ํด๋น ์ง์์ ๋ง์ถฐ์ Integer ํ์ผ๋ก ๋ณํ
ex) Integer.psrseInt("45", 3) // 1200 - Integer.toString() : ์ซ์๋ฅผ ๋ฌธ์๋ก ๋ณํํ๋ ํ ๋ณํ ๋ฐฉ๋ฒ!!!
ex) int num = 123;
String str1 = Integer.toString(num); .// ์ซ์๊ฐ ์๋๊ณ ๋ฌธ์ 123์