안녕하세요! Sooho입니다. 오늘도 코딜리티 문제를 풀어왔습니다. 2-2 문제를 풀었는데 66%에서 멈춰있어서 고민하다 다음 문제들을 먼저 포스팅하고 풀고 난 뒤에 올리려고 합니다! 오늘 문제는 쉬운 문제였던 것 같습니다. 더 좋은 방법이 있거나, 불필요한 코드 내용이 있으면 언제든지 말씀해주시면 감사하겠습니다!
이전 코딩내용이 궁금하시다면 아래 링크로 이동하시면 됩니다!
코딜리티 이전 글 -2020/07/15 - [파이썬] - [Codility] 코딜리티 2-1. CyclicRotation (Python)
1. 문제 설명
-
문제에서 X(개구리의 위치), Y(목표지점), D(개구리가 한번 뛰었을 때의 거리)를 줍니다.
-
목표는 X위치의 개구리가 N번 점프해서 Y에 도달하거나 넘어가게 되는 N을 return 하는 것입니다.
-
예시(X:10, Y:85, D:30)
-
1회 점프 10+30 = 40
-
2회 점프 10+30+30 = 70
-
3회 점프 10+30+30+30 =100
-
2. 풀이
-
Idea : Y-X값을 D로 나눈 뒤 나머지가 있으면 몫+1, 나머지가 없으면 몫을 결과로 보냅니다.
def solution(X, Y, D):
distance = Y-X
Q = T//D # 몫
R = T%D # 나머지
if R == 0:
return Q
elif R < D: # R != 0 이것도 상관없을 듯 합니다
retun Q+1
3. 결과
-
문제가 굉장히 쉬웠지만, 시간복잡도에 관한 내용에 대한 정리가 필요한 것 같습니다.
-
단순히 되는 코드가 아니라, 좀 더 빠르게 연산할 수 있는 코드를 짜 봐야겠습니다!