๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/134240
์์ ์ด๋ ๋งค๋ฌ ์ฃผ์ด์ง ์์์ ๋นจ๋ฆฌ ๋จน๋ ํธ๋ ํ์ดํธ ๋ํ๋ฅผ ๊ฐ์ตํฉ๋๋ค. ์ด ๋ํ์์ ์ ์๋ค์ 1๋ 1๋ก ๋๊ฒฐํ๋ฉฐ, ๋งค ๋๊ฒฐ๋ง๋ค ์์์ ์ข ๋ฅ์ ์์ด ๋ฐ๋๋๋ค. ๋๊ฒฐ์ ์ค๋น๋ ์์๋ค์ ์ผ๋ ฌ๋ก ๋ฐฐ์นํ ๋ค, ํ ์ ์๋ ์ ์ผ ์ผ์ชฝ์ ์๋ ์์๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก, ๋ค๋ฅธ ์ ์๋ ์ ์ผ ์ค๋ฅธ์ชฝ์ ์๋ ์์๋ถํฐ ์ผ์ชฝ์ผ๋ก ์์๋๋ก ๋จน๋ ๋ฐฉ์์ผ๋ก ์งํ๋ฉ๋๋ค. ์ค์์๋ ๋ฌผ์ ๋ฐฐ์นํ๊ณ , ๋ฌผ์ ๋จผ์ ๋จน๋ ์ ์๊ฐ ์น๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
์ด๋, ๋ํ์ ๊ณต์ ์ฑ์ ์ํด ๋ ์ ์๊ฐ ๋จน๋ ์์์ ์ข ๋ฅ์ ์์ด ๊ฐ์์ผ ํ๋ฉฐ, ์์์ ๋จน๋ ์์๋ ๊ฐ์์ผ ํฉ๋๋ค. ๋ํ, ์ด๋ฒ ๋ํ๋ถํฐ๋ ์นผ๋ก๋ฆฌ๊ฐ ๋ฎ์ ์์์ ๋จผ์ ๋จน์ ์ ์๊ฒ ๋ฐฐ์นํ์ฌ ์ ์๋ค์ด ์์์ ๋ ์ ๋จน์ ์ ์๊ฒ ํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ฒ ๋ํ๋ฅผ ์ํด ์์ ์ด๋ ์์์ ์ฃผ๋ฌธํ๋๋ฐ, ๋ํ์ ์กฐ๊ฑด์ ๊ณ ๋ คํ์ง ์๊ณ ์์์ ์ฃผ๋ฌธํ์ฌ ๋ช ๊ฐ์ ์์์ ๋ํ์ ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ๋์์ต๋๋ค.
์๋ฅผ ๋ค์ด, 3๊ฐ์ง์ ์์์ด ์ค๋น๋์ด ์์ผ๋ฉฐ, ์นผ๋ก๋ฆฌ๊ฐ ์ ์ ์์๋๋ก 1๋ฒ ์์์ 3๊ฐ, 2๋ฒ ์์์ 4๊ฐ, 3๋ฒ ์์์ 6๊ฐ ์ค๋นํ์ผ๋ฉฐ, ๋ฌผ์ ํธ์์ 0๋ฒ ์์์ด๋ผ๊ณ ์นญํ๋ค๋ฉด, ๋ ์ ์๋ 1๋ฒ ์์ 1๊ฐ, 2๋ฒ ์์ 2๊ฐ, 3๋ฒ ์์ 3๊ฐ์ฉ์ ๋จน๊ฒ ๋๋ฏ๋ก ์์์ ๋ฐฐ์น๋ "1223330333221"์ด ๋ฉ๋๋ค. ๋ฐ๋ผ์ 1๋ฒ ์์ 1๊ฐ๋ ๋ํ์ ์ฌ์ฉํ์ง ๋ชปํฉ๋๋ค.
์์
์ด๊ฐ ์ค๋นํ ์์์ ์์ ์นผ๋ก๋ฆฌ๊ฐ ์ ์ ์์๋๋ก ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด food๊ฐ ์ฃผ์ด์ก์ ๋, ๋ํ๋ฅผ ์ํ ์์์ ๋ฐฐ์น๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- 2 ≤ food์ ๊ธธ์ด ≤ 9
- 1 ≤ food์ ๊ฐ ์์ ≤ 1,000
- food์๋ ์นผ๋ก๋ฆฌ๊ฐ ์ ์ ์์๋๋ก ์์์ ์์ด ๋ด๊ฒจ ์์ต๋๋ค.
- food[i]๋ i๋ฒ ์์์ ์์ ๋๋ค.
- food[0]์ ์์ ์ด๊ฐ ์ค๋นํ ๋ฌผ์ ์์ด๋ฉฐ, ํญ์ 1์ ๋๋ค.
- ์ ๋ต์ ๊ธธ์ด๊ฐ 3์ด์์ธ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค.
์ ์ถ๋ ฅ ์
food | result |
[1, 3, 4, 6] | "1223330333221" |
[1, 7, 1, 2] | "111303111" |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ ์ ์๋ 1๋ฒ ์์ 3๊ฐ, 3๋ฒ ์์ 1๊ฐ๋ฅผ ๋จน๊ฒ ๋๋ฏ๋ก ์์์ ๋ฐฐ์น๋ "111303111"์ ๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
class Solution {
public String solution(int[] food) {
String answer = "";
for (int i = 1; i < food.length; i++) {
for (int j = 0; j < food[i]/2; j++) {
answer += Integer.toString(i);
}
}
String str = "";
for (int i = answer.length()-1; i >= 0; i--) {
str += answer.charAt(i);
}
return answer + "0" + str;
}
}
์ฝ๋ ์ค๋ช
- String answer = "" : ์์ ๊ฐ์๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ ์ฅํ ๋น ๋ฌธ์์ด answer๋ฅผ ์ด๊ธฐํํ๋ค.
- for (int i = 1; i < food.length; i++) { } : for๋ฌธ์ ์ฌ์ฉํด์ i๊ฐ 1๋ถํฐ food ๋ฐฐ์ด์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
- for (int j = 0; j < food[i]/2; j++) { } : for๋ฌธ์ ์ฌ์ฉํด์ j๊ฐ 0๋ถํฐ food[i]๋ฅผ 2๋ก ๋๋ ๋ชซ๊น์ง ๋ฐ๋ณตํ๋ค.
- answer += Integer.toString(i) : ๋ฌธ์์ด answer์ ํ์ฌ ์ธ๋ฑ์ค i๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ์ถ๊ฐํ๋ค.
- for (int j = 0; j < food[i]/2; j++) { } : for๋ฌธ์ ์ฌ์ฉํด์ j๊ฐ 0๋ถํฐ food[i]๋ฅผ 2๋ก ๋๋ ๋ชซ๊น์ง ๋ฐ๋ณตํ๋ค.
- String str = "" : answer๋ฅผ ๋ค์ง์ ๋ฌธ์์ด์ ์ ์ฅํ ๋น ๋ฌธ์์ด str๋ฅผ ์ด๊ธฐํํ๋ค.
- for (int i = answer.length; i >= 0; i--) { } : for๋ฌธ์ ์ฌ์ฉํด์ answer์ ๋ง์ง๋ง ๋ฌธ์๋ถํฐ ์ฒซ ๋ฒ์งธ ๋ฌธ์๊น์ง ๋ฐ๋ณตํ๋ค.
- str += answer.charAt(i) : ๋ฌธ์์ด str์ answer์ i๋ฒ์งธ ๋ฌธ์๋ฅผ ์ถ๊ฐํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค > ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค_๋ช ์์ ์ ๋น(1) (1) | 2024.12.12 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค_์ฝ๋ผ ๋ฌธ์ (0) | 2024.12.11 |
ํ๋ก๊ทธ๋๋จธ์ค_๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์ (0) | 2024.12.09 |
ํ๋ก๊ทธ๋๋จธ์ค_๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ (0) | 2024.12.05 |
ํ๋ก๊ทธ๋๋จธ์ค_K๋ฒ์งธ์ (0) | 2024.12.04 |