Algorithm(알고리즘)/백준
11_백준 1011번 파이썬 Fly me to the Alpha Centauri
반응형
문제는 이해가 되었고 내 머릿속에 다 그렸는데 코드로 어떻게 짜야할지
고민하다가 시간을 많이 쓴 문제..
결국 해냈다,,!
아래 내 코드의 핵심은 distance가 0부터 음수인 구간은 이동 횟수가 일정하고
양수로 전환될 때 횟수가 1늘어난다는 규칙을 이용했다!
다시 보니까 그냥 2번 이동 할 때마다 움직이는 거리가 같이 증가한다
아래 표를 보자!
- 1번,2번 실행은 예외
- (y좌표 - x좌표)distance는 move의 제곱
- 실행(count)이 짝수 일 때 마다 그 다음에 1회 이동거리인 move가 1씩 증가했다.
요 세가지로 풀었다.
-> 예시) distance가 6번실행(12)과 7번실행(16) 사이값 일 때 (distance가 14라 가정)
6번을 실행하고 move+1 = 4
distance의 차이를 보면 6번 : 12 / 7번 : 16 으로 move(4)만큼 차이가 난다.
따라서 주어진 distance(y-x)가 저 사이의 distance인 14라 가정한다면 음수가 될 것이다!!
distance가 음수일 때 반복문을 탈출하자
- 풀이
n = int(input())
for i in range(n):
x, y = map(int, input().split())
distance = y - x
count = 0
move = 1
if distance < 4:
print(distance)
continue
while distance > 0:
distance -= move
count += 1
if count % 2 == 0:
move += 1
print(count)
# 입력
3
0 3
1 5
45 50
# 출력
3
3
4
반응형
'Algorithm(알고리즘) > 백준' 카테고리의 다른 글
13_백준 _1436번 파이썬 영화감독 숌 (0) | 2021.06.17 |
---|---|
12_백준 _4948 번 파이썬 베르트랑 공준 (0) | 2021.06.17 |
10_백준 _2839번 파이썬 설탕 배달 (0) | 2021.06.17 |
09_백준 _1316번 파이썬 그룹 단어 체커 (0) | 2021.06.17 |
08_백준 _2941번 파이썬 크로아티아 알파벳 (0) | 2021.06.17 |
댓글