๋ฌธ์
๋ฌธ์ ์ค๋ช
์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. n์ 3์ง๋ฒ ์์์ ์๋ค๋ก ๋ค์ง์ ํ, ์ด๋ฅผ ๋ค์ 10์ง๋ฒ์ผ๋ก ํํํ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- n์ 1 ์ด์ 100,000,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
n | result |
45 | 7 |
125 | 229 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ต์ ๋์ถํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
n(10์ง๋ฒ) | n(3์ง๋ฒ) | ์๋ค ๋ฐ์ (3์ง๋ฒ) | 10์ง๋ฒ |
45 | 1200 | 21 | 7 |
- ๋ฐ๋ผ์ 7์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ต์ ๋์ถํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
n(10์ง๋ฒ) | n(3์ง๋ฒ) | ์๋ค ๋ฐ์ (3์ง๋ฒ) | 10์ง๋ฒ |
125 | 11122 | 22111 | 229 |
- ๋ฐ๋ผ์ 229๋ฅผ return ํด์ผ ํฉ๋๋ค.
ํ์ด
์ค๋ช
- ์ง๋ฒ ๊ณ์ฐ์ ์์ ๋ชจ๋ฅด๋ ๋ด๊ฐ SSAFY์ CT๋ฅผ ๊ณต๋ถํ๋ ๋์ธ์ง ํด๋น ๋ฌธ์ ๋ ์กฐ๊ธ ์์ํ๊ฒ ํ ์ ์์๋ค.
- ์์ ์ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถํ๋ฉด์
Math.pow()
๋ฉ์๋๋ฅผ ๊ณต๋ถํ๊ฒ ๋๊ณ , ๊ทธ ๋๋ถ์ ์ ๊ณฑ ๊ณ์ฐ๋ ์์ํ๊ฒ ํด๊ฒฐ ํ ์ ์์๋ค. - ๋ณ์
tmp
๊ฐ 0์ด ๋๊ธฐ ์ ๊น์ง ๋ฐ๋ณตํ์ฌn
์ 3์ง์๋ฅผ ๊ตฌํ๋ค.- ์ด ๋, ๋๋
List
๊ฐ ์ฐ๊ธฐ ์ซ์ด์StringBuffer
๋ฅผ ์ด์ฉํ๋ค.
- ์ด ๋, ๋๋
StringBuffer
์ 3์ง์์ ๊ฐ ์๋ฆฌ์ ๊ฐ์ด ์ญ์์ผ๋ก ์์ด๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ์ ์ผ๋ก ๋ณํํ 3์ง์๋ฅผ ๋ค์ง๋ ๊ณผ์ ์ ์๋ตํ๋ค.score
๋ณ์๋ฅผ ์ ์ธํ๊ณ , ํด๋น ๋ณ์์StringBuffer
์subString
์Math.pow()
๋ฅผ ์ฌ์ฉํด ๊ฐ์ ๋ํ๋ฉด 10์ง๋ฒ์ ๊ฐ์ด ๋๋ค.
์ฝ๋
package ์ฌ์ฑํ.์๊ณ ๋ฆฌ์ฆ_6์ฃผ์ฐจ;
public class ์ผ์ง๋ฒ๋ค์ง๊ธฐ_ํ๋ก๊ทธ๋๋จธ์ค {
public static void main(String[] args) {
int n = 125;
int result = solution(n);
System.out.println(result);
}
public static int solution(int n) {
int tmp = n;
StringBuffer sb = new StringBuffer();
while (tmp > 0) {
int remain = tmp % 3;
sb.append(remain);
tmp /= 3;
}
int score = 0;
int x = sb.length() - 1;
for (int i = 0; i < sb.length(); i++) {
score += Integer.parseInt(sb.toString().substring(i, i + 1)) * Math.pow(3, x);
x--;
}
return score;
}
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 10808] ์ํ๋ฒณ ๊ฐ์ (0) | 2023.03.28 |
---|---|
[๋ฐฑ์ค 2309] ์ผ๊ณฑ ๋์์ด (0) | 2023.03.28 |
ํ๋ก๊ทธ๋๋จธ์ค | ์ฒด์ก๋ณต, ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ (2) | 2020.12.12 |
ํ๋ก๊ทธ๋๋จธ์ค | ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์, Stack (0) | 2020.12.11 |
ํ๋ก๊ทธ๋๋จธ์ค | ๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ, ์์ ํ์, HashSet (0) | 2020.12.11 |