[ Codility ] - Lesson3 FrogJmp(C++)

DPOS·2021년 7월 2일
1

Codility

목록 보기
4/11
post-thumbnail

문제조건

  • 값이 정의된 벡터 A
  • 현재 위치 X
  • 목적 위치 Y
  • 점프 최대거리 D
  • 삼항연산자(없어도 되지만 있으면 코드 효율이 올라감

문제풀이

int solution(int X, int Y, int D) {
int num = Y - X; // 앞으로 뛰어야 하는 거리
int res = num/D; // 앞으로 뛰어야 하는 횟수
return num%D == 0? res : res + 1; // 나머지가 있으면 한 번 더 뜀
}

코드설명

문제가 FrogJmp니 개구리가 점프한다고 생각하고 설명하겠습니다.

X는 현재 위치, Y는 목적 위치, D는 한 번에 점프할 수 있는 최대 거리라고 생각하겠습니다. 그리고 저희는 개구리가 몇 번을 뛰어야 도착할 수 있는지 구하려 합니다.

 먼저, 앞으로 갈 거리를 구하기 위해 num에 목적 위치에서 현재 위치만큼을 빼서 저장해주고, res에 이동할 거리에서 한 번에 이동 가능한 거리를 나눠줍니다. 그럼 res에 점프수 즉, 우리가 원하는 값이 나오는데 만약 딱 맞아 떨어지지 않으면 한 번 더 뛰어줘야 해서 나머지가 0이 아닐 땐 +1을 해줍니다.

결과사진

profile
본인 전공빼고 다 하는 사람

0개의 댓글