본문 바로가기

프로그래머스31

[코딩테스트] 프로그래머스 - 더 맵게 (Lv.2) in Python 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return. 모든 음식 스코빌 지수를 K이상으로 만들기 위해, 가장 낮은 스코빌 지수를 가진 음식을 섞어 새로운 음식을 만든다. 이 때, (섞은 음식의 스코빌 지수) = (가장 맵지 않은 음식의 스코빌 지수) + (2 * 두 번째로 맵지 않은 음식의 스코빌 지수) 프로그래머스 강의 내용을 바탕으로 풀이합니다. programmers.co.kr/learn/courses/30/lessons/42626 풀이 - 가장 맵지 않은 두 음식을 골라야 하므로, sorting은 필수! - 다만 최악의 경우 (n-1) - 전체 음식 수를 n이라고 할 때 - 번 섞어.. 2021. 2. 13.
[코딩테스트] 프로그래머스 - 큰 수 (Lv.2) in Python 파이썬 임의의 수 number에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 수를 return. ex. number = 1924, k = 2 가능한 수의 집합 = [19, 12, 14, 92, 94, 24] 이 중 가장 큰 수 94를 return! 프로그래머스 강의를 바탕으로 코드를 작성했습니다. programmers.co.kr/learn/courses/30/lessons/42746 풀이법 결과적으로 앞 자리가 클수록 큰 수이므로, bucket을 하나 만들어, number에서 한 숫자씩 담되, 지금 bucket에 들어간 수보다 넣을 수가 더 크면, 그 둘을 교환한다. (k가 남아있는 동안) number의 모든 숫자를 거친 후에는 (탐색이 끝난 후에는) bucket에 있는 수들을 이어 붙여 반환하면 된다. .. 2021. 2. 13.
[코딩 테스트] 프로그래머스 - 체육복 (Lv.1) in Python 전체 학생 수 n, 체육복 없는 학생들 번호가 담긴 배열 lost, 여벌의 체육복 가져온 학생들의 번호 담긴 배열 reserve가 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return ~> 단, 여벌의 체육복은 바로 앞이나 뒤의 학생에게만 빌려줄 수 있다. 프로그래머스 수업 내용을 토대로 작성한 코드들. programmers.co.kr/learn/courses/30/lessons/42862 해결법 탐욕법 (Greedy) 사용! 각 단계에서 최적의 선택을 함. 현재 단계의 최적해가 문제 전체의 최적성을 해치지 않으면 됨. Python 구현 방법 1 def solution(n, lost, reserve): li = [1] * (n+2) for i in lost: li[i] -= 1 for i i.. 2021. 2. 13.
[코딩테스트] 프로그래머스 - 튜플 (Lv.2) in Python 원소의 개수가 n개이고, 중복되는 원소가 없는 튜플 (a1, a2, a3, ..., an)이 주어질 때(단, a1, a2, ..., an은 자연수), 이는 다음과 같이 집합 기호 '{', '}'를 이용해 표현 가능. {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, ... {a1, a2, a3, a4, ..., an} 특정 튜플을 표현하는 집합이 담긴 문자열 s가 매개변수로 주어질 때, s가 표현하는 튜플을 배열에 담아 return. 예시: 입력 - "{{2},{2,1},{2,1,3},{2,1,3,4}}", 리턴 - [2,1,3,4] programmers.co.kr/learn/courses/30/lessons/64065 파이썬 코드 구현 def solution(s):.. 2021. 2. 6.