티스토리 뷰

알고리즘/SWEA

[SWEA] 4839. 이진탐색

빙빙 2021. 2. 16. 13:35
T = int(input())

for tc in range(1, T+1):
    P,A,B = map(int, input().split())
    start = 1
    end = P
    cnt_A = 0
    cnt_B = 0
    #A의 경우
    while True:
        mid = int((start + end) / 2)
        cnt_A += 1
        if mid == A:
            break
        elif mid < A: #중간값이 찾는값보다 크면 시작점으로 치환
            start = mid
        elif mid > A: #중간값이 찾는값보다 작으면 끝점으로 치환
            end = mid

    #B의 경우
    start = 1
    end = P
    while True:
        mid = int((start + end) / 2)
        cnt_B += 1
        if mid == B:
            break
        elif mid < B:
            start = mid
        elif mid > B:
            end = mid
    #카운트값이 크다면 많이 돈 것으로 진것으로 판단. 이긴것을 출력
    result = ''
    if cnt_A < cnt_B:
        result = 'A'
    elif cnt_A > cnt_B:
        result = 'B'
    elif cnt_A == cnt_B:
        result = '0'

    print("#{} {}".format(tc, result))

'알고리즘 > SWEA' 카테고리의 다른 글

[SWEA] 1979.어디에 단어가 들어갈 수 있을까  (0) 2021.02.19
[SWEA] 4843. 특별한정렬  (0) 2021.02.16
[SWEA] 1204.최빈수 구하기  (0) 2021.02.16
[SWEA] 1209. Sum  (0) 2021.02.15
[SWEA] 5789.현주의 상자 바꾸기  (0) 2021.02.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함