취준생의 코딩테스트 연습기

[SWEA] 4839 [파이썬 S/W 문제해결 기본] 2일차 - 이진탐색 / 파이썬(python) 본문

코딩테스트/SWEA

[SWEA] 4839 [파이썬 S/W 문제해결 기본] 2일차 - 이진탐색 / 파이썬(python)

Jiwon_C 2021. 3. 28. 21:53

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

# 문제 링크

swexpertacademy.com/main/learn/course/subjectDetail.do?courseId=AVuPDN86AAXw5UW6&subjectId=AWOVF-WqqecDFAWg

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

# Soultion

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
def binary_search(eend, ppage ):
    start = 1
    end = eend 
    mid = end//2
    cnt=0
    while(1):
        cnt+=1
        if mid==ppage:
            return cnt
        elif mid>ppage:
            end = mid
        elif mid < ppage:
            start = mid
        mid = (end+start)//2
 
= int(input())
for tc in range(1,t+1):
    p,a,b = map(int,input().split())
    
    t_a = binary_search(p,a)
    t_b = binary_search(p,b)
    if t_a==t_b:
        print('#'+str(tc),0)
    elif t_a > t_b:
        print('#'+str(tc),'B')
    else:
        print('#'+str(tc),'A')
cs
 

1. 이진탐색을 위해 함수 생성

8. 찾고자 하는 값을 찾으면 몇번 이진탐색했는지 카운팅 리턴

22. 수 비교를 통해 각 상황에 맞는 출력하기

Comments