본문 바로가기
Algorithm

[구현/수학] 백준 21631 Checkers - 파이썬(Python)

by jangThang 2022. 10. 16.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    21631번: Checkers

    The only line of input contains two integers $a$ and $b$ --- the number of white and black pieces, respectively ($0 \le a, b \le 10^{18}$).

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     검은색 줄무늬는 '위아래가 흰색 말' 또는 '타워 끝으로 둘러싸인 연속된 검은 말'을 의미합니다. 흰색 말과 검은색 말의 개수가 주어질 때, 최대로 얻을 수 있는 검은색 줄무늬의 개수를 구해야 합니다.

     

     1) 만약 흰색 말이 검은색 말보다 많다면, 흰색 말 사이사이에 검은색 말을 끼어넣어서 '검은색 말' 개수만큼의 줄무늬를 얻을 수 있습니다.

     2) 만약 검은색 말의 개수가 흰색 말보다 더 많다면, 반대로 검은색 말 사이사이에 흰색 말을 끼어넣어서 '흰색 말' 개수+1 만큼의 줄무늬을 얻을 수 있습니다. (양 끝에 검은색 줄무늬가 생기므로 +1을 해줘야 합니다.)

     

     

    3. 코드

    # 입력
    a, b = map(int, input().split())
    
    # 출력
    if a >= b:
        print(b)
    elif a < b and b != 0:
        print(a+1)

     

     

    star가 되고나서 Tistory

    반응형

    댓글