๐ ํ์ด์ฌ ์ผ๋ก ํ์ด
๐ ๋ฌธ์ ๋งํฌ :
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ๋ฌธ์ ์ค๋ช :
์์ ์ด๋ ๋งค๋ฌ ์ฃผ์ด์ง ์์์ ๋นจ๋ฆฌ ๋จน๋ ํธ๋ ํ์ดํธ ๋ํ๋ฅผ ๊ฐ์ตํฉ๋๋ค. ์ด ๋ํ์์ ์ ์๋ค์ 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 ์ด์์ธ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค.
๐ ์ ์ถ๋ ฅ ์

์ถ์ธก)
* ์์ ์์ด 1์ธ ๊ฒฝ์ฐ๋ ์๋ต
* 0 ์ธ๋ฑ์ค๋ ๋ฌผ ๊ฐ์๋ ์๊ด์๊ณ , String left์ ์์๋๋ก 2๋ฅผ ๋๋ ๋งํผ ์ธ๋ฑ์ค๋ฅผ ๋ฐ๋ณตํด ๋ฌธ์์ด๋ก ์ถ๊ฐ (์ผ์ชฝ์ ์ ๊ฒ๋ง)
* ๊ทธ ๋ฌธ์์ด์ ์ญ์ผ๋ก ์ ๋ ฌํ ๊ฑธ String right๋ก ์ ์ฅํ๊ณ
* left + "0" + right ๋ฅผ ๋ฐํ
์์ค์ฝ๋)
* 1์ฐจ) ์ฑ๊ณต :
def solution(food):
left = ""
for i in range(1, len(food)) :
left += str(i) * int(food[i] / 2)
right = left[::-1] # ๋ฌธ์์ด ์ญํ ์ถ๋ ฅ
return left + "0" + right
* 2์ฐจ) ์ฑ๊ณต : ์์ ์ ์๊ฐ 1์ ์ด๊ธธ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํด๋ดค๋๋ฐ ์ด๊ฒ๋ 1์ ใ ใ
def solution(food):
result = "0"
for i in range(len(food)-1, 0, -1) :
print(i)
for x in range(0, int(food[i] / 2)) :
word = str(i)
result = word + result + word
return result
๋ฆฌ๋ทฐ)
๋ณด๋ฉด ํ์ด์ฌ์ด ์ง์ง ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ด ๋ง์ ๊ฑฐ ๊ฐ๋ค
'Coding Test > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Programmers] ์น์์ด (2) (0) | 2023.02.13 |
|---|---|
| Programmers] ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ (0) | 2023.02.13 |
| Programmers] ๊ณผ์ผ ์ฅ์ (1) | 2023.02.13 |
| Programmers] ๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ (0) | 2023.02.04 |
| Programmers] ๋ช ์์ ์ ๋น(1) (0) | 2023.01.31 |
