티스토리 뷰

반응형

문제의 저작권은 SW Expert Academy에 있습니다.

 

 

 

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
32
33
34
35
36
37
TC = int(input())
for tc in range(1, TC+1):
    P, A, B = map(int, input().split())
    s = 1
    e = P
    mid = 0
    ca = 0
    while s <= e:
        if mid == A:
            break
 
        mid = (s+e)//2
        if mid < A:
            s = mid
        else:
            e = mid
        ca += 1
 
    s = 1
    e = P
    cb = 0
    while s <= e:
        if mid == B:
            break
        mid = (s + e) // 2
        if mid < B:
            s = mid
        else:
            e = mid
        cb += 1
    # print(ca, cb)
    if ca<cb:
        print(f'#{tc} A')
    elif ca>cb:
        print(f'#{tc} B')
    else:
        print(f'#{tc} 0')
cs

이진 탐색의 개념 자체를 이해하고 넘어가면 좋다. 기본 알고리즘이다.

print는 f-스트림 썼다.

코드를 다음에 시간날 때 깔끔하게 다시 올려보겠다

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함