๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/68935
์์ฐ์ 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 | 0021 | 7 |
๋ด๊ฐ ์์ฑํ ์ฝ๋
import java.util.*;
class Solution {
public int solution(int n) {
int answer = 0;
int mok=n;
List<Integer> num = new ArrayList<>();
while(mok != 0) {
num.add(mok % 3);
mok = mok / 3;
}
int cnt = num.size() - 1;
for(int i : num) {
answer += (int) (i * Math.pow(3,cnt--));
}
return answer;
}
}
์ฝ๋ ์ค๋ช
- int answer = 0 : ๋ณ์ answer๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
- int mok = n : ๋ณ์ mok์ n์ผ๋ก ์ด๊ธฐํํ๋ค.
- List<Integer> num = new ArrayList<>( ) : ๋์ ๋ฆฌ์คํธ num์ ์ ์ธํ๊ณ ์์ฑํ๋ค.
- while (mok != 0) { } : while๋ฌธ์ ์ฌ์ฉํด์ mok์ด 0์ด ์๋ ๋ ๋ฐ๋ณตํ๋ค.
- num.add(mok % 3) : mok์ 3์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ณ์ฐํด์ num ๋ฆฌ์คํธ์ ์ ์ฅํ๋ค.
- mok = mok / 3 : mok์ 3์ผ๋ก ๋๋ ๋ชซ์ ๊ณ์ฐํด์ ๋ณ์ mok์ ์ ์ฅํ๋ค.
- int cnt = num.size( ) - 1 : num ๋ฆฌ์คํธ์ ๊ธธ์ด์์ 1์ ๋บ ๊ฐ์ ๋ณ์ cnt์ ์ ์ฅํ๋ค.
- for (int i : num) { answer += (int) (i * Math.pow(3, cnt--)) } : ํฅ์๋ for๋ฌธ์ ์ฌ์ฉํด์ num ๋ฆฌ์คํธ์ ๊ฐ ์์๋ฅผ ์ํํ๋ฉด์ ๋ณ์ answer์ i * Math.pow(3, cnt--) ๊ฐ์ ์ ์ฅํ๋ค. Math.pow(3, cnt--)๋ ๋ฐ์ 3, ์ง์๋ cnt์ด๋ค. cnt๋ ๋ฐ๋ณต์ด ์งํ๋ ๋๋ง๋ค 1์ฉ ๊ฐ์ํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค > ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค_์ผ์ด์ฌ (0) | 2024.11.27 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค_์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (0) | 2024.11.26 |
ํ๋ก๊ทธ๋๋จธ์ค_์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (0) | 2024.11.25 |
ํ๋ก๊ทธ๋๋จธ์ค_์ง์ฌ๊ฐํ ๋ณ์ฐ๊ธฐ (0) | 2024.11.24 |
ํ๋ก๊ทธ๋๋จธ์ค_ํ๋ ฌ์ ๋ง์ (1) | 2024.11.22 |