학습 자료
코딩 퀴즈
이번 코딩 퀴즈는 동적 계획법(Dynamic Programming)을 이용해 주어진 정수 n을 1로 만들기 위한 최소 연산 횟수를 구하는 프로그램을 작성합니다.
연산은 다음 세 가지 중 하나를 선택할 수 있습니다.
-
n이 3으로 나누어 떨어지면, 3으로 나눕니다. -
n이 2로 나누어 떨어지면, 2로 나눕니다. -
n에서 1을 뺍니다.
이 3가지 연산을 적절히 사용하여 n을 1로 만드는데 필요한 최소 연산 횟수를 찾는 함수를 작성해 보세요.
코드 작성
def solution(n): # 여기에 코드를 작성하세요 return
제한 사항
-
입력으로 받는
n은 2 이상 10,000 이하의 정수입니다. -
함수는 반드시 동적 계획법을 사용하여 구현되어야 합니다.
입출력 예시
- 입력:
10 - 출력:
3 - 설명: 10 -> 9 -> 3 -> 1 과정을 거쳐 총 3번의 연산이 필요합니다.
- 입력:
6 - 출력:
2 - 설명: 6 -> 3 -> 1 과정을 거쳐 2번의 연산이 필요합니다.
이 챕터의 강의 · 파이썬 알고리즘 실전
- 1. 파이썬 알고리즘 심화
- 2. 재귀 호출(recursive-call)이란?
- 3. 재귀 함수로 피보나치 수열 구현하기
- 4. 빈칸 채우기 퀴즈
- 5. 코딩 퀴즈 - 피보나치 수열
- 6. 동적 계획법과 분할 정복
- 7. 동적 계획법 파이썬 구현 방법
- 8. 선택형 퀴즈
- 9. 코딩 퀴즈 - 1로 만들기
- 10. 병합 정렬(Merge Sort)이란?
- 11. 병합 정렬 구현 방법
- 12. 선택형 퀴즈
- 13. 코딩 퀴즈 - 병합 정렬을 활용한 리스트 정렬
- 14. 퀵 정렬(Quick Sort)이란?
- 15. 퀵 정렬 파이썬으로 구현하기
- 16. 선택형 퀴즈
- 17. 코딩 퀴즈 - 퀵 정렬로 리스트 정렬하기
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말