수가 간단한 5와 3이어서 5는 큰 영향을 끼치지 않고 3으로 인해서 -1이 될 것인지. 아니면 값이 제대로 출력 될 것인지가 결정된다고 생각했다.
경우의 수 생각하기
5로 나눴을 때 0 -> 5의 배수이므로 5로 나눠준 값을 출력해주면 된다
5로 나눴을 때 1 -> 최소 6이어야지 3*2로 2를 출력해줄 수 있다. N이 3부터 시작이어서 if문이 별 영향은 안끼치지만, 무조건 1이 나머지이려면 6+5*N의 형태여야하므로 6을 빼주고 출력값에 2를 더해준다. (3*2) 그리고 5를 나눠준 값을 출력값에 더해 출력
5로 나눴을 때 2 -> 최소 12여야한다 왜냐하면 7이라고 치면 5+2 라서 -1을 출력해줘야한다. 그래서 12를 빼주고 출력값에 4를 더해준 뒤 5를 나눠준 값을 출력값에 더해서 출력해준다. 이때 주의할 점은 N에 12를 빼주고 5를 나눠줘야한다.
5로 나눴을 때 3 -> 최소 3이어야한다. 동일한 과정
5로 나눴을 때 4 -> 최소 9이어야한다. 14일때 10+4면 -1이 나와버리니 9를 빼주고 5로 나눠줘야한다.
이 로직대로 코드를 구현하였다.
//설탕배달 실버 4
//21 -> 15+6 if 5로 나눴을 때 1이면 31 5*N +6(최소 6) 5로 나눴을때 2 32 5*N +12(최소 12)
댓글 영역