๐Ÿงฉ Algorithm/SWEA

[SWEA] 2005. ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜• (Python/D2)

devCloud 2024. 11. 10. 18:51
728x90

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‡

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com


ํ’€์ด ๋ฐฉ๋ฒ•

๐Ÿ’ก ๊ทœ์น™์„ ๋ณด์ž

 

๋งจ ์ฒ˜์Œ๊ณผ ๋งจ ๋์€ ํ•ญ์ƒ 1์ด๋‹ค.

๊ฐ€์šด๋ฐ ์ˆซ์ž๋Š” ์ธ๋ฑ์Šค์™€ ์ผ์น˜ํ•œ๋ฐ, ๊ทธ ์ˆ˜์˜ ๊ฐœ์ˆ˜๋Š” ์ธ๋ฑ์Šค - 1 ๊ณผ ์ผ์น˜ํ•˜๋‹ค.

์ด ๊ทœ์น™์„ ์ฐธ๊ณ ํ•ด์„œ ๋ฆฌ์ŠคํŠธ์— append() ํ•˜๊ณ  ์ถœ๋ ฅํ•œ๋‹ค.

Solution

T = int(input())  # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜
for test_case in range(1, T + 1):
    N = int(input())
    print(f"#{test_case}")
    print(1)
    for i in range(1, N):
        pascal = [0]
        pascal[0] = 1
        for j in range(i - 1):
            pascal.append(i)
        pascal.append(1)
        print(*pascal)

 

 

๊ฐœ์„ ํ•  ์ 

์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•ด ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜•์„ ๋” ํšจ์œจ์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜„์žฌ ์ฝ”๋“œ๋Š” ์‚ผ๊ฐํ˜•์˜ ๊ฐ ์ค„์„ ์ˆ˜๋™์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋ ค ํ•˜๋ฏ€๋กœ, ๊ฐ ์ˆซ์ž์˜ ๊ฐ’์„ ์ •ํ™•ํžˆ ๊ณ„์‚ฐํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜์˜ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์€ ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜•์˜ ๊ฐ ํ–‰์„ ์ด์ „ ํ–‰์˜ ๊ฐ’์„ ํ™œ์šฉํ•ด ํšจ์œจ์ ์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค.

 

  • ์‚ผ๊ฐํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์‚ฌ์šฉ : ๊ฐ ์ค„์„ triangle์— ์ €์žฅํ•ด ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ํ•„์š”ํ•œ ๊ฐ’์— ์ ‘๊ทผ
  • ์ด์ „ ์ค„ ๊ฐ’ ์ฐธ์กฐ : ํ˜„์žฌ ์ค„์˜ ์š”์†Œ๋“ค์€ ์ด์ „ ์ค„์˜ ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑ๋˜๋ฏ€๋กœ ๋งค๋ฒˆ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๊น”๋”ํ•œ ์ถœ๋ ฅ : *row๋กœ ๊ฐ ํ–‰์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ถœ๋ ฅํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ€ ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ๋‚˜์˜จ๋‹ค.

 

 

๊ฐœ์„ ๋œ ์ฝ”๋“œ

T = int(input())  # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜

for test_case in range(1, T + 1):
    N = int(input())
    print(f"#{test_case}")
    
    # ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜• ์ดˆ๊ธฐํ™”
    triangle = [[1]]  # ์ฒซ ๋ฒˆ์งธ ์ค„์€ ํ•ญ์ƒ [1]
    
    for i in range(1, N):
        row = [1]  # ๊ฐ ์ค„์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋Š” ํ•ญ์ƒ 1
        
        # ์ด์ „ ์ค„์„ ์ฐธ์กฐํ•˜์—ฌ ํ˜„์žฌ ์ค„์˜ ๊ฐ’์„ ๊ณ„์‚ฐ
        for j in range(1, i):
            row.append(triangle[i-1][j-1] + triangle[i-1][j])
        
        row.append(1)  # ๊ฐ ์ค„์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋Š” ํ•ญ์ƒ 1
        triangle.append(row)  # ์‚ผ๊ฐํ˜•์— ํ˜„์žฌ ์ค„ ์ถ”๊ฐ€
    
    # ์ถœ๋ ฅ
    for row in triangle:
        print(*row)

๐Ÿ‘ฉ‍๐Ÿ’ป ํšŒ๊ณ 

์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ํ’€๋ฆฌ๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์›๋ž˜ ๋‚ด ํ’€์ด์™€ ๊ฐœ์„ ๋œ ์ฝ”๋“œ๋ฅผ ๋น„๊ตํ•ด๋ณด๋ฉด ์‹คํ–‰ ์‹œ๊ฐ„์—์„œ ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋‚ด๊ฐ€ ๋ด๋„ ์•ฝ๊ฐ„ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ดˆ๊ธฐํ™”๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค๊ฑฐ๋‚˜, ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆด ๋•Œ๋งˆ๋‹ค ์ถœ๋ ฅ์„ ํ•˜๊ณ  ์žˆ์–ด์„œ ํšจ์œจ์ ์œผ๋กœ ์ข‹์€ ์ฝ”๋“œ๋Š” ์•„๋‹๊ฑฐ๋ผ ์ƒ๊ฐ์€ ํ–ˆ๋‹ค.

 


 

728x90