๋‚ด ์ธ์ƒ์—์„œ ๋ฏฟ์„ ๊ฑด ์˜ค์ง ๋‚˜ ์ž์‹ ๋ฟ!

The only one you can truly trust is yourself.

๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Python ํ”„๋กœ๊ทธ๋ž˜๋ฐ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV0 ์ •์ˆ˜๋ฅผ ๋‚˜์„ ํ˜•์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

๐ŸŽฎinspirer9 2023. 6. 23. 16:00
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ ์„ค๋ช…

์–‘์˜ ์ •์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. n ร— n ๋ฐฐ์—ด์— 1๋ถ€ํ„ฐ n2 ๊นŒ์ง€ ์ •์ˆ˜๋ฅผ ์ธ๋ฑ์Šค [0][0]๋ถ€ํ„ฐ ์‹œ๊ณ„๋ฐฉํ–ฅ ๋‚˜์„ ํ˜•์œผ๋กœ ๋ฐฐ์น˜ํ•œ ์ด์ฐจ์› ๋ฐฐ์—ด์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

1 โ‰ค n โ‰ค 30

์ž…์ถœ๋ ฅ ์˜ˆ

nresult
4[[1, 2, 3, 4], [12, 13, 14, 5], [11, 16, 15, 6], [10, 9, 8, 7]]
55 [[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
๋ฐ˜์‘ํ˜•