[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‚ผ๊ฐ ๋‹ฌํŒฝ์ด / ํŒŒ์ด์ฌ / Python / ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1
Algorithm/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‚ผ๊ฐ ๋‹ฌํŒฝ์ด / ํŒŒ์ด์ฌ / Python / ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ก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

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์‚ผ๊ฐ ๋‹ฌํŒฝ์ด

5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11]

programmers.co.kr

๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ฐ‘๋ณ€์˜ ๊ธธ์ด์™€ ๋†’์ด๊ฐ€ n์ธ ์‚ผ๊ฐํ˜•์—์„œ ๋งจ ์œ„ ๊ผญ์ง“์ ๋ถ€ํ„ฐ ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ๋‹ฌํŒฝ์ด ์ฑ„์šฐ๊ธฐ๋ฅผ ์ง„ํ–‰ํ•œ ํ›„, ์ฒซ ํ–‰๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ํ–‰๊นŒ์ง€ ๋ชจ๋‘ ์ˆœ์„œ๋Œ€๋กœ ํ•ฉ์นœ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

์ œํ•œ์‚ฌํ•ญ

  • n์€ 1 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ



์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๋ฌธ์ œ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ๋ฌธ์ œ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • ๋ฌธ์ œ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•