본문 바로가기

코딩테스트연습

(9)
[탐욕법] 난이도1, K 대회 기출 '만들 수 없는 금액' (Python) 동네 편의점의 주인인 동빈이는 N개의 동전을 가지고 있습니다. 이때 N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요. 예를 들어, N=5이고, 각 동전이 각각 3원, 2원, 1원, 1원, 9원짜리 (화폐 단위) 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 8원입니다. 또 다른 예시로, N=3이고, 각 동전이 각각 3원, 5원, 7원짜리 (화폐 단위) 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 1원입니다. 첫째 줄에는 동전의 개수를 나타내는 양의 정수 N이 주어집니다. (1
[기타] 프로그래머스 L1 '키패드 누르기' (Python) https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 1. 키패드의 좌표를 변수로 지정한다 2. 왼쪽, 오른쪽 시작 위치를 *, #으로 지정한다 3. 1,4,7일 때는 왼손, 3,6,9일 때는 오른손을 출력한다 4. 이외 숫자를 누를 때는 현재 양쪽 손의 거리(손좌표x-숫자좌표x) + (손좌표y-숫자좌표y..
[진법 변환] 프로그래머스 L1 '3진법 뒤집기' (Python) https://programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 1. 정수를 3진법으로 구하고 그 값의 앞뒤를 반전시키고 [::-1] 다시 10진법으로 표현한다. def solution(n): answer = '' i=1 three = [1] answer2 = 0 while 3**i
[순열과 조합] 프로그래머스 L1 '두 개 뽑아서 더하기' (Python) https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 1. combinations을 이용해서 조합 만들기 2. 중복되는 문자열 제거 3. 숫자를 더한 값 출력 from itertools import combinations, permutations def solution(numbers): s = set() num = set(combinations(numbers,2)) ..
[탐욕법] 프로그래머스 L1 '최소직사각형' (Python) https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 1. 가로와 세로 길이를 비교해서 길이가 작은건 세로, 긴건 가로에 놓는다. def solution(sizes): answer = 0 w = 0 h = 0 for size in sizes: if size[0]>size[1]: if w
[소수의 판별] 프로그래머스 L1 '소수 찾기' (Python) https://programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 1. 에라토스테네스의 체 공식으로 소수 구하기 def solution(n): answer = 0 # 에라토스테네스의 체 초기화: n개 요소에 True 설정(소수로 간주) sieve = [True] * (n+1) # n의 최대 약수가 sqrt(n) 이하이므로 i=sqrt(n)까지 검사 m = int(n ** 0.5) for i in ran..
[기타] 프로그래머스 L1 '약수의 합' (Python) https://programmers.co.kr/learn/courses/30/lessons/12928 코딩테스트 연습 - 약수의 합 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수 programmers.co.kr 1. n이 0 또는 1일 때 약수는 0과 1뿐이다. 2. 2이상 약수는 1을 반드시 포함하므로, 1부터 반복문을 돌린다. 3. n//i이 i보다 작을 때 반복문을 멈춘다. (ex. 12//4 < 4) 4. n//i이 i와 같고, n/i==0일 때 i 값을 더하고 반복문을 멈춘다. (ex. 4/2==2) 5. ..
[정렬] 프로그래머스 L1 '정수 내림차순으로 배치하기' (Python) https://programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이 programmers.co.kr 1. 정수를 리스트로 바꿔 정렬하고 문자열로 바꾸고 다시 정수로 바꾼다. def solution(n): return int("".join(sorted(str(int(n)), reverse=True))) 1000000000 이상 자연수는 int로 바꿔줘야 함 복습 알고리즘

LIST