[SWEA][Python3] 4112. 이상한 피라미드 탐험
2019. 5. 27. 00:49 |
프로그래밍/삼성 SWEA
나의 풀이 :
def find(x):
low, high = 1, 141
mid = (low + high)//2
while (mid-1)*mid//2 >= x or x > mid*(mid+1)//2:
if x > mid*(mid+1)//2:
low = mid + 1
else:
high = mid
mid = (low + high)//2
return (mid, mid*(mid+1)//2 - x)
T = int(input())
for tc in range(1, T + 1):
a, b = map(int, input().split())
if a > b:
a, b = b, a
row_a, diff_a = find(a)
row_b, diff_b = find(b)
if diff_a > diff_b:
ans = (row_b - row_a) + (diff_a - diff_b)
else:
ans = max(row_b - row_a, diff_b - diff_a)
print('#{} {}'.format(tc, ans))
한마디 :
이진 탐색 + 등차수열의 합 으로 접근하였다.
'프로그래밍 > 삼성 SWEA' 카테고리의 다른 글
[SWEA][Python3] 1256. [S/W 문제해결 응용] 6일차 - K번째 접미어 (0) | 2019.05.30 |
---|---|
[SWEA][Python3] 3503. 초보자를 위한 점프대 배치하기 (0) | 2019.05.30 |
[SWEA][Python3] 1259. [S/W 문제해결 응용] 7일차 - 금속막대 (0) | 2019.05.29 |
[SWEA][Python3] 1265. [S/W 문제해결 응용] 9일차 - 달란트2 (0) | 2019.05.29 |
[SWEA][Python3] 1798. 범준이의 제주도 여행 계획 (0) | 2019.05.23 |
[SWEA][Python3] 1248. [S/W 문제해결 응용] 3일차 - 공통조상 (0) | 2019.05.18 |
[SWEA][Python3] 1245. [S/W 문제해결 응용] 2일차 - 균형점 (1) | 2019.05.17 |
[SWEA][Python3] 1849. 영준이의 무게측정 (0) | 2019.05.16 |
최근에 달린 댓글 최근에 달린 댓글