정구리의 우주정복
4839. [파이썬 S/W 문제해결 기본] 2일차 - 이진탐색 본문
반응형
#파이썬
##질문 댓글
이진탐색을 할때마다 +1 씩 해줘서 풀었다
testCase = int(input())
for i in range(testCase):
num = [int(x) for x in input().split(' ')]
count = []
for j in range(2):
l = 1
r = num[0]
time = 0
page = num[j+1]
while l<=r:
middle = (l+r)//2
if page == middle:
break
elif page < middle:
r = middle
time += 1
elif page > middle:
l = middle
time += 1
count.append(time)
if count[0] < count[1]:
print('#'+str(i+1)+' A')
elif count[0] == count[1]:
print('#'+str(i+1)+' 0')
else:
print('#'+str(i+1)+' B')
----------------의문--------------
testCase = int(input())
def binarySearch(page,pageNum,count):
l = 0
r = page
while l<= r :
middle = (l+r)//2
if pageNum == middle:
return count
elif pageNum < middle:
r = middle
count +=1
elif pageNum > middle:
l = middle
count +=1
for i in range(testCase):
num = [int(x) for x in input().split(' ')] #0:page 1: A num 2: B num
countA =0
countB =0
countA = binarySearch(num[0],num[1],countA)
countB = binarySearch(num[0],num[2],countB)
if countA < countB:
print('#'+str(i+1)+' A')
elif countA == countB :
print('#'+str(i+1)+' 0')
elif countA > countB:
print('#'+str(i+1)+' B')
처음에 만든 소스인데 테스트 케아스 10개중 9개만 통과하고 마지막 하나를 통과하지 못해서 틀린 소스다 !
어디가 틀렸을까 .. 400을 넣었을때 틀렸나 했는데 위에 소스도 400넣으면 동작을 안하는건 마찬가지라 어디가 틀린지 모르겠다
반응형
'ALGORITHM > SOLVE' 카테고리의 다른 글
4864. [파이썬 S/W 문제해결 기본] 3일차 - 문자열 비교 (0) | 2020.05.14 |
---|---|
4843. [파이썬 S/W 문제해결 기본] 2일차 - 특별한 정렬 (0) | 2020.05.13 |
4837. [파이썬 S/W 문제해결 기본] 2일차 - 부분집합의 합 (0) | 2020.05.12 |
4836. [파이썬 S/W 문제해결 기본] 2일차 - 색칠하기 (0) | 2020.05.11 |
4835. [파이썬 S/W 문제해결 기본] 1일차 - 구간합 (0) | 2020.05.09 |
Comments