๐กsolutions )
๐ฌ ํผ๋ผ๋ฏธ๋ ๋ฐฐ์ด ๋ง๋ค๊ณ , ์ผ๊ฐํ์ ๊ธฐ์ค์ผ๋ก if๋ฌธ ์ฒ๋ฆฌ (๊ฐ ์ ๋ถ์ ํด๋นํ๋ 3๊ฐ์ง ์กฐ๊ฑด์ผ๋ก ์ฒ๋ฆฌ)
๐ฌ ํด๋น ๋ฌธ์ ๋ฅผ ํ๋ฉด์ list index out of range๊ฐ ๋ง์ด ๋์ ๊ณ ์์ ์ข ํ๋ค..!!!!๐
๐ฌ ์ธ๋ฑ์ค ์๋ฌ๊ฐ ๋์ง ์๊ฒ while๋ฌธ ์์์ break ์กฐ๊ฑด์ ์ ์ ํ ๋ฃ์ด์ค์ผ ํ๋ค
->j, k ๋ฒ์๋ฅผ ์ฒดํฌํ๊ฑฐ๋ arr[j][k] ๊ฐ์ด ์๋์ง ํ์ธํ๋ ์กฐ๊ฑด์ ๋ฃ์์
๐ฌ ์ต๊ทผ ๋ณธ ์ฝํ ์์ 2์ฐจ์ ๋ฐฐ์ด ๋ฆฌ์คํธ๋ฅผ ํ์ฉํ๋ ๋ฌธ์ ๊ฐ ๋์๋๋ฐ ์๋นํ ์ด๋ ต๊ฒ ๋๊ปด์ก๋ค. ํด๋น ์ ํ์ ๋ฌธ์ ๋ฅผ ๋ ์ฐ์ตํด์ผ๊ฒ ๋ค!
๐ซcode )
def solution(n):
arr = [[0] * _ for _ in range(1, n + 1)]
num = 1
j = 0
k = 0
for i in range(1, n+1):
# ์ผ์ชฝ ์๋๋ก ๋ด๋ ค๊ฐ๋ ๋๊ฐ์
if i % 3 == 1:
while True:
arr[j][k] = num
num += 1
j += 1
if j >= n or arr[j][k]:
j -= 1
k += 1
break
# ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ ํฅํ๋ ์ผ์ง์
elif i % 3 == 2:
while True:
arr[j][k] = num
num += 1
k += 1
if k >= n or arr[j][k]:
k -= 2
j -= 1
break
# ์ผ์ชฝ ์๋ก ํฅํ๋ ๋๊ฐ์
elif i % 3 == 0:
while True:
arr[j][k] = num
num += 1
j -= 1
k -= 1
if arr[j][k]:
j += 2
k += 1
break
return sum(arr, [])
๐ description )
๋ฌธ์ ์ถ์ฒ : programmers.co.kr/learn/courses/30/lessons/68645?language=python3
๋ฌธ์ ์ค๋ช
์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ฐ๋ณ์ ๊ธธ์ด์ ๋์ด๊ฐ n์ธ ์ผ๊ฐํ์์ ๋งจ ์ ๊ผญ์ง์ ๋ถํฐ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก ๋ฌํฝ์ด ์ฑ์ฐ๊ธฐ๋ฅผ ์งํํ ํ, ์ฒซ ํ๋ถํฐ ๋ง์ง๋ง ํ๊น์ง ๋ชจ๋ ์์๋๋ก ํฉ์น ์๋ก์ด ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
์ ์ถ๋ ฅ ์
์ ์ถ๋ ฅ ์ #1
์ ์ถ๋ ฅ ์ #2
์ ์ถ๋ ฅ ์ #3
|