https://school.programmers.co.kr/learn/courses/30/lessons/181832

 

๋ฌธ์ œ

 

๋ฌธ์ œ ์„ค๋ช…

์–‘์˜ ์ •์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. n × n ๋ฐฐ์—ด์— 1๋ถ€ํ„ฐ n^2๊นŒ์ง€ ์ •์ˆ˜๋ฅผ ์ธ๋ฑ์Šค [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 [[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]]

 

 

์†Œ์Šค ์ฝ”๋“œ
def solution(n):
    if n == 1:
        return [[1]]

    answer = [[0 for j in range(n)] for i in range(n)]

    i = 0       # ํ–‰
    j = 0       # ์—ด
    dir = 'r'   # ๋ฐฉํ–ฅ
    
    for num in range(n*n):
        answer[i][j] = num+1
        if dir == 'r':
            j += 1
            if j == n-1 or answer[i][j+1] != 0:
                dir = 'd'
        elif dir == 'd':
            i += 1
            if i == n-1 or answer[i+1][j] != 0:
                dir = 'l'
        elif dir == 'l':
            j -= 1
            if j == 0 or answer[i][j-1] != 0:
                dir = 'u'
        else:
            i -= 1
            if i == 0 or answer[i-1][j] != 0:
                dir = 'r'            
    
    
    return answer

 

ํ’€์ด

  • 1 x 1 ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ์— [[1]]์„ ์ถœ๋ ฅ
  • ํ–‰ ๋ฒˆํ˜ธ = i / ์—ด ๋ฒˆํ˜ธ = j / ๋ฐฉํ–ฅ = dir (r:์˜ค๋ฅธ์ชฝ → d:์•„๋ž˜์ชฝ  → l:์™ผ์ชฝ → u:์œ„์ชฝ)
  • n x n ๋ฒ”์œ„๋ฅผ ๋Œ๋ฉด์„œ ์ˆซ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ฑ„์›Œ์ฃผ๋Š” for๋ฌธ
    • ๋ฐฉํ–ฅ์ด ์˜ค๋ฅธ์ชฝ์ธ ๊ฒฝ์šฐ : ์—ด ํ•œ ์นธ ์ด๋™ / ๋งˆ์ง€๋ง‰ ์—ด์ด๊ฑฐ๋‚˜ ์นธ์ด ์ฑ„์›Œ์ ธ ์žˆ์œผ๋ฉด ๋ฐฉํ–ฅ ๋ณ€๊ฒฝ
    • ๋ฐฉํ–ฅ์ด ์•„๋ž˜์ชฝ์ธ ๊ฒฝ์šฐ : ํ–‰ ํ•œ ์นธ ์ด๋™ / ๋งˆ์ง€๋ง‰ ํ–‰์ด๊ฑฐ๋‚˜ ์นธ์ด ์ฑ„์›Œ์ ธ ์žˆ์œผ๋ฉด ๋ฐฉํ–ฅ ๋ณ€๊ฒฝ
    • ๋ฐฉํ–ฅ์ด ์™ผ์ชฝ์ธ ๊ฒฝ์šฐ : ์—ด ํ•œ ์นธ ์•ž์œผ๋กœ ์ด๋™ / ์ฒซ ๋ฒˆ์งธ ์—ด์ด๊ฑฐ๋‚˜ ์นธ์ด ์ฑ„์›Œ์ ธ ์žˆ์œผ๋ฉด ๋ฐฉํ–ฅ ๋ณ€๊ฒฝ
    • ๋ฐฉํ–ฅ์ด ์œ„์ชฝ์ธ ๊ฒฝ์šฐ : ํ–‰ ํ•œ ์นธ ์œ„๋กœ ์ด๋™ / ์ฒซ ๋ฒˆ์งธ ํ–‰์ด๊ฑฐ๋‚˜ ์นธ์ด ์ฑ„์›Œ์ ธ ์žˆ์œผ๋ฉด ๋ฐฉํ–ฅ ๋ณ€๊ฒฝ

 

 

์ด๊ฑฐ ๋ ˆ๋ฒจ0 ๋งž์•„์š”..? ๊ทธ๋ ‡๋‹ค๋ฉด ๋‚ด ์‹ค๋ ฅ์ด ๋งˆ์ด๋„ˆ์Šค์ธ๊ฐ€๋ณด๋‹ค....์ด๋Ÿฐ ์ €๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ํ•ด๋ณด๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ๊ฒ€์ƒ‰ํ•ด์„œ ์•Œ๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ ์•ž์œผ๋กœ ๋” ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค...ํ”Œ๋Ÿฌ์Šค ์‹ค๋ ฅ์ด ๋  ๋•Œ๊นŒ์ง€ ํ™”์ดํŒ…..!!

 

+ Recent posts