https://school.programmers.co.kr/learn/courses/30/lessons/389478
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
def solution(n, w, num):
answer = 0
now_num = num
while now_num <= n :
if now_num % w == 0 :
now_num += 1
else :
now_num = now_num + 2 * (w - (now_num % w)) + 1
answer += 1
return answer

아이디어
상자를 꺼내야 하는 'num'부터 윗 상자로 올라가며 세보는 방식.
예를 들어, '3'을 꺼내야 하면 그 위인 '10', '15', '22'를 계산하며 올라가기
열의 수를 나타내는 w
꺼내야 하는 박스 num
num의 바로 윗행 박스 숫자와의 관계는 num을 w로 나눈 나머지 값의 두 배에 + 1을 한 값이다.
num + 2 * (w - (num % w)) + 1
예외로, num이나 num의 윗 상자 번호가 w의 배수 숫자가 될 경우 +1만 해주어야 한다.
'코테풀이 > 프로그래머스' 카테고리의 다른 글
| [PCCP 기출문제] 1번 / 동영상 재생기 (0) | 2025.05.12 |
|---|---|
| [LV. 1] 유연근무제 (0) | 2025.05.10 |