꺼내먹는지식 준
SW Expert 아카데미 4112. 이상한 피라미드 탐험 본문
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com

풀이 방법:
층 이동에는 1 번만 움직이면 된다.
층 이동하며 동시에 양 옆 1칸 접근이 가능하니, 층 차이에 따라 왼쪽 오른쪽으로 몇칸 움직일 수 있는지 바로 알 수 있다.
민지의 최대 이동거리 보다 멀리 있으면 그 만큼 더해주면 된다.
s , t = list(map(int, input().split()))
low, high = 0, 0
if t < s: s,t = t,s
def find_rc(n,r):
while(True):
if r*(r-1) // 2 < n <= r*(r+1)// 2:
c = n - r*(r-1)//2
return r, c
r += 1
s_r, s_c = (1, 1) if s == 1 else find_rc(s,2)
t_r, t_c = (1, 1) if t == 1 else find_rc(t,2)
low = t_r - s_r
if 0 <= t_c - s_c <= low:
answer = t_r - s_r
elif t_c - s_c < 0:
answer = t_r - s_r + (s_c - t_c)
else:
answer = t_r - s_r + (t_c - s_c- low)
print(answer)
'코딩테스트총정리 > 구현' 카테고리의 다른 글
프로그래머스 조이스틱 그리디 (0) | 2022.05.12 |
---|---|
2018 KAKAO BLIND RECRUITMENT 2번 문제 (0) | 2022.02.12 |
2022 KAKAO BLIND RECRUITMENT 3번 문제 (0) | 2022.02.12 |
백준 11578 팀원 모집 (0) | 2022.02.12 |
SW Expert Academy 6109 문제 (행렬회전) (0) | 2022.01.24 |