๋ฌธ์ ์ค๋ช
์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ฐ๋ณ์ ๊ธธ์ด์ ๋์ด๊ฐ n์ธ ์ผ๊ฐํ์์ ๋งจ ์ ๊ผญ์ง์ ๋ถํฐ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก ๋ฌํฝ์ด ์ฑ์ฐ๊ธฐ๋ฅผ ์งํํ ํ, ์ฒซ ํ๋ถํฐ ๋ง์ง๋ง ํ๊น์ง ๋ชจ๋ ์์๋๋ก ํฉ์น ์๋ก์ด ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
![](https://blog.kakaocdn.net/dn/pb10m/btrM1e6hFYp/tqijaEkQHMkfndk45fY7C1/img.png)
- n์ 1 ์ด์ 1,000 ์ดํ์ ๋๋ค.
![](https://blog.kakaocdn.net/dn/tipdE/btrM6bVghum/UFgbemZ446GZ85COg3Cxb0/img.png)
์ ์ถ๋ ฅ ์ #1
- ๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #3
- ๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
ํ์ด ์ฝ๋
def solution(n):
size = n * (n+1) // 2
answer = [0 for _ in range(size)]
checker = [0, 0]
idx = 0
step = 1
temp = n
for i in range(1, size + 1):
answer[idx] = i
checker[1] += 1
if checker[1] == temp:
# ํด๋น ๋ฐฉํฅ์ผ๋ก ๋ค ์ด๋ํ์ผ๋ฉด,
temp -= 1
checker[1] = 0
checker[0] = (checker[0] + 1) % 3
direction = checker[0]
if direction == 0:
# down
idx += step
step += 1
elif direction == 1:
# right
idx += 1
elif direction == 2:
# up
idx -= step
step -= 1
return answer
๋ณ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ ์์ด, ๊ท์น์ ์ํ ๊ตฌํ์ผ๋ก ํ์ดํ๋ค.
n = k์ผ๋, ํผ๋ผ๋ฏธ๋์ ๋ธ๋ญ์ ์ ์ ์๋ k * (k+1) // 2์ ํด๋นํ๋ค.
๊ทธ ํ, ๊ท์น์ ๋ง๊ฒ ํผ๋ผ๋ฏธ๋ ๋ด์ ์๋ฅผ ์ฑ์ ๋๊ฐ๋ค.
์ผ๊ฐ ๋ฌํฝ์ด์ ์ด๋์, ์๋ → ์ค๋ฅธ์ชฝ → ์ → ์๋ ๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ค.
์๋๋ก ๊ฐ ๋๋ง๋ค index์ step์ 1์ฉ ๋์ด๋๋ค.
n=4์ผ ๋์ ๊ฒฝ์ฐ, 1(1) → 2(2) → 3(4) →4(7)์ด๋ฏ๋ก, step๋ง ๋ณด๋ฉด 1 → 2 → 3 (์ฌ๊ธฐ๊น์ง ๊ฐ ๋งค๊น) → 4 (step๋ง ์ค์ ํ๊ณ ๊ฐ ์ ๋งค๊น)์ผ๋ก ๋ณํ๋๋ค.
์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ฉด index๋ 1์ฉ ๋์ด๋๋ฏ๋ก, step์ ๋ฐ๋ก ์ค์ ํ ํ์ ์๋ค.
์๋ก ์ด๋ํ๋ฉด, index๋ ์ด์ ์๋ ์ด๋์์์ step ๊ฐ๋งํผ ์ฐจ๊ฐํ๋ฉฐ ์ด๋ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ก ์ด๋ํ ๋๋ง๋ค step์ 1์ฉ ์ค์ด๋ ๋ค.
7 (10) → 8 (6) → 9 (3)์, 4 → 3 (์ฌ๊ธฐ๊น์ง ๊ฐ ๋งค๊น) → 2 (step ์ค์ ๋ง ํ๊ณ ๊ฐ ์ ๋งค๊น)์ผ๋ก ๋ณผ ์ ์๋ค.
์ด ๊ท์น์ ์ด์ฉํด ๊ตฌํํ๋ฉด ํ ์ ์๋ค.
level2 ์ด์ง๋ง, ์๊ทผํ ์๊ฐ์ด ํ์ํ ๊ตฌํ๋ฌธ์ ๋ผ ์ ๋ต๋ฅ ์ด ๋ค์ ๋ฎ์ ๋ชจ์ต์ ๋ณผ ์ ์์๋ค.
'๐ ์ฝ๋ฉํ ์คํธ ๋๋น : PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ณด์ ์ผํ (level3, python) (0) | 2022.10.10 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ถ๋ ์ฌ์ฉ์ (level3, python) (0) | 2022.09.27 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ์ง๊ตญ ์ค์น (level3, python) (1) | 2022.09.25 |
[ํ๋ก๊ทธ๋๋จธ์ค] 124 ๋๋ผ์ ์ซ์ (level2, python) (1) | 2022.09.25 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฟผ๋์์ถ ํ ๊ฐ์ ์ธ๊ธฐ (level2, python) (1) | 2022.09.23 |