728x90
๋ฐ์ํ
๋ฌธ์ ์ค๋ช
์์ ์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. n ร n ๋ฐฐ์ด์ 1๋ถํฐ n2 ๊น์ง ์ ์๋ฅผ ์ธ๋ฑ์ค [0][0]๋ถํฐ ์๊ณ๋ฐฉํฅ ๋์ ํ์ผ๋ก ๋ฐฐ์นํ ์ด์ฐจ์ ๋ฐฐ์ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ ์ฌํญ
1 โค n โค 30
์ ์ถ๋ ฅ ์
n | result |
4 | [[1, 2, 3, 4], [12, 13, 14, 5], [11, 16, 15, 6], [10, 9, 8, 7]] |
5 | 5 [[1, 2, 3, 4, 5], [16, 17, 18, 19, 6], [15, 24, 25, 20, 7], [14, 23, 22, 21, 8], [13, 12, 11, 10, 9]] |
์ ์ถ๋ ฅ ์ ์ค๋ช
- ์
์ถ๋ ฅ ์ #1
- ์์ 1๋ฒ์ n์ ๊ฐ์ 4๋ก 4 ร 4 ๋ฐฐ์ด์ ๋ค์๊ณผ ๊ฐ์ด 1๋ถํฐ 16๊น์ง ์ซ์๋ฅผ ์ฑ์ธ ์ ์์ต๋๋ค.
- ๋ฐ๋ผ์ [[1, 2, 3, 4], [12, 13, 14, 5], [11, 16, 15, 6], [10, 9, 8, 7]]๋ฅผ return ํฉ๋๋ค.
- ์
์ถ๋ ฅ ์ #2
- ์์ 2๋ฒ์ n์ ๊ฐ์ 5๋ก 5 ร 5 ๋ฐฐ์ด์ ๋ค์๊ณผ ๊ฐ์ด 1๋ถํฐ 25๊น์ง ์ซ์๋ฅผ ์ฑ์ธ ์ ์์ต๋๋ค.
- ๋ฐ๋ผ์ [[1, 2, 3, 4, 5], [16, 17, 18, 19, 6], [15, 24, 25, 20, 7], [14, 23, 22, 21, 8], [13, 12, 11, 10, 9]]๋ฅผ return ํฉ๋๋ค.
ํ์ด
- ๋์ ๋ฐฉํฅ์ผ๋ก (RDLU) ํ์ ํ๋ค.
- ์ฒ์ n๋งํผ ๊ฐ๊ณ , ๊ทธ ๋ค์์ n-1๋งํผ ๋๋ฒ ๊ฐ๋ค.
- ์#1 : 4, 3, 3, 2, 2, 1, 1
- ์#2 : 5, 4, 4, 3, 3, 2, 2, 1, 1
- ๊ทธ๋์ ๋ฐฐ์ด 2๊ฐ ๋ง๋ค์ด์ ๊ตฌํ.
def solution(n):
snake = [n]
d = ((0,1),(1,0),(0,-1),(-1,0))
answer = [[0 for i in range(n)] for j in range(n)]
count,x,y = 0,-1,0
while n > 1:
n -= 1
snake.append(n)
snake.append(n)
for i in range(len(snake)):
for j in range(snake[i]):
y += d[i%4][0]
x += d[i%4][1]
count += 1
answer[y][x] = count
return answer
728x90
๋ฐ์ํ
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค LV0 ์ฝ๋ฉ ๊ธฐ์ด ํธ๋ ์ด๋ ๋ฌธ์ (0) | 2023.06.25 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค LV0 ์ฃผ์ฌ์ ๊ฒ์ 3 (0) | 2023.06.24 |
ํ๋ก๊ทธ๋๋จธ์ค์ Problem Solving ํ๊ฐ ๋ฆฌํฌํธ๋๊ฒ ์๊ฒผ๋ค. (0) | 2023.06.23 |
ํ๋ก๊ทธ๋๋จธ์ค LV2 ๊ด๋ฌผ ์บ๊ธฐ (0) | 2023.06.23 |
ํ๋ก๊ทธ๋๋จธ์ค LV2 ์ฐ์๋ ๋ถ๋ถ ์์ด์ ํฉ (0) | 2023.06.23 |