Algorithm Problem/Python

[python] SWEA - 4301. ์ฝฉ ๋งŽ์ด ์‹ฌ๊ธฐ

deo2kim 2022. 3. 26. 20:24
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

O O X X O O
O O X X O O
X X O O X X
X X O O X X
O O X X O O
O O X X O O

 

O O X X O
O O X X O
X X O O X

 

์œ„์—์„œ๋ถ€ํ„ฐ ์•„๋ž˜๋กœ ํ•œ์ค„์”ฉ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ๊ทœ์น™์„ ์ฐพ์•„๋ณด๋ฉด์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์‹ฌ๋Š”๊ฒŒ ๊ฐ€์žฅ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋งŽ๊ฒŒ ์‹ฌ์„ ์ˆ˜ ์žˆ๋‹ค. 

  • ์ฒซ์ค„์—์„œ
    • ์˜ค๋ฅธ์ชฝ์œผ๋กœ 4์นธ๋งˆ๋‹ค 2๊ฐœ์”ฉ ์‹ฌ์„ ์ˆ˜ ์žˆ๋‹ค
    • ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋จธ์ง€์นธ์ด
      • 3์นธ - 2๊ฐœ
      • 2์นธ - 2๊ฐœ
      • 1์นธ - 1๊ฐœ
      • 0์นธ - 0๊ฐœ
  • ๋‘๋ฒˆ์งธ ์ค„๋„ ์œ„์™€ ๊ฐ™๋‹ค
  • ์„ธ๋ฒˆ์งธ ์ค„์€ ์•ž์˜ ๋‘์นธ์„ ๋นผ๊ณ  ์‹œ์ž‘ํ•˜์—ฌ ์œ„์˜ ๊ทœ์น™์„ ์ ์šฉ
  • ๋„ค๋ฒˆ์งธ๋„ ์„ธ๋ฒˆ์งธ์™€ ๊ฐ™๋‹ค
  • ๋‹ค์„ฏ๋ฒˆ์งธ๋Š” ๋‹ค์‹œ ์ฒซ๋ฒˆ์งธ์ฒ˜๋Ÿผ

๊ฒฐ๋ก ์€ 1,2 | 3,4 | 5,6 | 7,8 | ... ์ง์ง€์–ด์„œ ํ•˜๋ฉด๋œ๋‹ค.

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

def get_axis_per_count(num):
    count = num // 4 * 2
    nmg = num % 4
    if nmg in (3, 2):
        count += 2
    else:
        count += nmg
    return count


T = int(input())
for test_case in range(1, T + 1):
    N, M = map(int, input().strip().split())

    answer = 0
    flag = 0
    for i in range(M):
        if flag in (0, 1):
            answer += get_axis_per_count(N)
            flag += 1
        else:
            answer += get_axis_per_count(N - 2)
            flag += 1
        flag %= 4
    print(f'#{test_case} {answer}')

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: SW Expert Academy

๋ฐ˜์‘ํ˜•