ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

12886๋ฒˆ: ๋Œ ๊ทธ๋ฃน

์˜ค๋Š˜ ๊ฐ•ํ˜ธ๋Š” ๋Œ์„ ์ด์šฉํ•ด ์žฌ๋ฏธ์žˆ๋Š” ๊ฒŒ์ž„์„ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋จผ์ €, ๋Œ ์„ธ๊ฐœ๋Š” ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์œผ๋ฉฐ ๊ฐ๊ฐ์˜ ๊ทธ๋ฃน์—๋Š” ๋Œ์ด A, B, C๊ฐœ๊ฐ€ ์žˆ๋‹ค. ๊ฐ•ํ˜ธ๋Š” ๋ชจ๋“  ๊ทธ๋ฃน์— ์žˆ๋Š” ๋Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ฐ™๊ฒŒ ๋งŒ๋“ค๋ ค๊ณ 

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

  ๋Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ์„ธ ๊ฐœ์˜ ๊ทธ๋ฃน A, B, C๊ฐ€ ์ฃผ์–ด ์งˆ ๋•Œ ์„ธ ๊ฐœ์˜ ๊ทธ๋ฃน ์ค‘ 2๊ฐœ๋ฅผ ์„ ํƒํ•œ ํ›„, ๋Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ž‘์€ ์ชฝ์„ X, ํฐ ์ชฝ์„ Y๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋•Œ, X์— ์žˆ๋Š” ๋Œ์˜ ๊ฐœ์ˆ˜๋ฅผ X + X๋กœ Y์— ์žˆ๋Š” ๋Œ์˜ ๊ฐœ์ˆ˜๋ฅผ Y - X๊ฐœ๋กœ ๋งŒ๋“ ๋‹ค. ์ด์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ A, B, C์˜ ๋Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์•„์ง€๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

  • ๊ทธ๋ฃน์˜ ๋Œ์˜ ๊ฐœ์ˆ˜ ํ•ฉ์ด 3์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง€๋Š” ๊ฒฝ์šฐ, ๋Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์•„ ์งˆ ์ˆ˜ ์—†๋‹ค.
  • A, B, C 3๊ฐœ์˜ ๊ทธ๋ฃน ์ค‘ 2๊ฐœ๋ฅผ ์„ ํƒํ•˜์—ฌ 2๊ฐœ์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋ฌธ์ œ ์กฐ๊ฑด๊ณผ ๊ฐ™์ด ์ฒ˜๋ฆฌํ•œ๋‹ค.
    • ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ, ๋™์ผํ•œ ์กฐ๊ฑด์„ ์žฌํƒ์ƒ‰ํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin
from collections import deque, defaultdict


def bfs():
    q = deque([stones])
    check[tuple(stones)] = True

    while q:
        a, b, c = q.popleft()
        if a == b == c:
            return 1

        for x, y in ((a, b), (a, c), (b, c)):
            if x == y:
                continue
            elif x < y:
                y -= x
                x += x
            elif x > y:
                x -= y
                y += y

            z = sum_stone - x - y

            if not check[(x, y, z)]:
                check[(x, y, z)] = True
                q.append([x, y, z])

    return 0


if __name__ == '__main__':
    stones = list(map(int, stdin.readline().split()))
    sum_stone = sum(stones)
    check = defaultdict(bool)
    print(0) if sum_stone % 3 else print(bfs())

 defaultdict๋ฅผ ์ด์šฉํ•˜์—ฌ x, y, z๋ฅผ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ์šฐ์˜ ์ˆ˜์— ๋Œ€ํ•œ ํ™•์ธ์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ๋‚˜, ์‹คํ–‰ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๋‹ค.๐Ÿ™‚

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€