본문 바로가기

코딩테스트27

[코딩테스트] 프로그래머스 - 주식 가격 (Lv.2) in Python 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 예시: prices = [1,2,3,2,3] return = [4,3,1,1,0] programmers.co.kr/learn/courses/30/lessons/42584 풀이 주어진 배열을 차례대로 살펴보고, 조건에 따라 바로 전 값부터 살펴보는 문제임에 스택이 적절하겠다는 생각이 들었다! 다만 어떤 값을 스택에 저장하느냐에서 많이 애를 먹었는데... ㅜ 결론은 주식의 값이 아니라, 해당 시간을 저장하는 것이 답이었다. 예시: stack = [] answer = [] prices = [1 2 3 1 3] 0초 1초 2초 3초 4초 라고 하자. 0초일 때 비교대상이 없으므로, .. 2021. 2. 14.
[코딩테스트] 프로그래머스 - 더 맵게 (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.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.