๐Ÿงฉ Algorithm/SWEA

[SWEA] 1220. [S/W ๋ฌธ์ œํ•ด๊ฒฐ ๊ธฐ๋ณธ] 5์ผ์ฐจ - Magnetic (Python/D3)

devCloud 2024. 10. 21. 19:02
728x90

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

 

SW Expert Academy

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

swexpertacademy.com

 


 

ํ’€์ด

ํ…Œ์ด๋ธ” ์œ„๋Š” N๊ทน, ์•„๋ž˜๋Š” S๊ทน์ด๊ณ  ์ž…๋ ฅ์—์„œ์˜ 1์€ N๊ทน, 2๋Š” S๊ทน์ด๋‹ค. 

N๊ทน ์ชฝ์—๋Š” 1์ด ์žˆ์œผ๋ฉด ์•ˆ ๋˜๊ณ , S๊ทน ์ชฝ์—๋Š” 2๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค.

 

 

 

์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด 1 ๋‹ค์Œ์— 2 ๊ฐ€ ์žˆ์œผ๋ฉด ๊ต์ฐฉ์ƒํƒœ๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ํ•œ ์ค„์”ฉ ํ™•์ธํ•˜๋ฉด์„œ 1๊ณผ 2๊ฐ€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

 

ํ˜„์žฌ bit๋ฅผ 1์ด๋ผ๊ณ  ์ •ํ•˜๊ณ  ์‹œ์ž‘ํ•œ๋‹ค.

for i in range(100):
    bit = 1

 

์ด์ œ ํ•œ ์ค„์”ฉ ํ™•์ธํ•œ๋‹ค. 

    for j in range(100):
        if table[j][i] == 1:
            bit = 2
        elif table[j][i] == bit:
            bit = 1
            result += 1
  • ํ˜„์žฌ ์ž์„ฑ์ฒด๊ฐ€ 1์ด๋ฉด bit๋ฅผ 2๋กœ ๋ฐ”๊พผ๋‹ค. 
  • ํ˜„์žฌ ์ž์„ฑ์ฒด๊ฐ€ ํ˜„์žฌ ๋น„ํŠธ์™€ ๊ฐ™์œผ๋ฉด, ์ฆ‰ ํ˜„์žฌ ๋น„ํŠธ๊ฐ€ 2์ด๋ฉด bit๋ฅผ 1๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ฒฐ๊ณผ๊ฐ’์„ ์ฆ๊ฐ€ํ•œ๋‹ค.
  • if table[j][i] == 1:
    • N๊ทน(1)์„ ๋งŒ๋‚˜๋ฉด bit๋ฅผ 2๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. ์ด์ œ ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” S๊ทน(2)๊ณผ์˜ ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฒƒ์ด๋‹ค.
  • elif table[j][i] == bit:
    • ์ด ์กฐ๊ฑด์€ bit๊ฐ€ 2์ผ ๋•Œ, S๊ทน(2)์„ ๋งŒ๋‚ฌ๋Š”์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค. ์ฆ‰, N๊ทน์„ ๋งŒ๋‚œ ์ดํ›„์— S๊ทน์„ ๋งŒ๋‚˜๋ฉด ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์ด๋‹ค.
    • result ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  bit๋ฅผ ๋‹ค์‹œ 1๋กœ ์„ค์ •ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ์ฐพ์„ ์ค€๋น„๋ฅผ ํ•œ๋‹ค.

 

 

๐Ÿ’ก์™œ ์กฐ๊ฑด๋ฌธ์—์„œ elif table[j][i] == 2: ๋ผ๊ณ  ํ•˜๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€?

1 ๋‹ค์Œ์— 2 ์ธ ๊ฒƒ์„ ํ™•์ธํ•ด์•ผ ๊ต์ฐฉ์ƒํƒœ์ธ ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ์กฐ๊ฑด๋ฌธ์€ bit๊ฐ€ 1์ผ ๋•Œ๋„ S๊ทน์„ ๋งŒ๋‚˜๊ฒŒ ๋˜๋ฉฐ ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ์ž˜๋ชป ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์˜ˆ๋ฅผ ๋“ค์–ด, N๊ทน(1)์„ ๋งŒ๋‚˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ S๊ทน(2)์ด ๋‚˜์™”์„ ๋•Œ๋„ ์ด ์กฐ๊ฑด์ด ์ฐธ์ด ๋˜์–ด result ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค.

 

Solution

for tc in range(1, 11):
    length = int(input())
    table = [list(map(int, input().split())) for _ in range(100)]
    result = 0
    for i in range(100):
        bit = 1
        for j in range(100):
            if table[j][i] == 1:
                bit = 2
            elif table[j][i] == bit:
                bit = 1
                result += 1
    print("#%d %s" % (tc, result))

 

 

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

์–ด๋–ป๊ฒŒ ํ’€์–ด์•ผ ํ• ์ง€ ๋ง‰๋ง‰ํ–ˆ๋Š”๋ฐ, ํ’€์ด ์•ˆ ๋ณด๊ณ  ํ‘ผ ๋‚˜์—๊ฒŒ ๋ฐ•์ˆ˜๋ฅผ.. 1289. ์›์žฌ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ณต๊ตฌํ•˜๊ธฐ์—์„œ ์ฐฉ์•ˆ์„ ์–ป์–ด ํ’€์—ˆ๋‹ค. ๊ทธ ๋ฌธ์ œ๋ฅผ ๋ฏธ๋ฆฌ ํ’€์–ด์„œ ๋‹คํ–‰์ด์—ˆ๋‹ค.

 


 

728x90