본문 바로가기

Python36

[코딩테스트] 프로그래머스 - 주식 가격 (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.
[Python]8 - Change Return 거스름돈 구하기 수학적 개념을 다루는 프로그램부터 시작하니, 궁금한 것들이 너무 많아 꼬리에 꼬리를 물어 검색하다 보니 오래걸린다. 더 읽고 글을 쓰고 싶으니, 오늘은 간단한 change return 프로그램에 대한 포스팅 먼저 하고자 한다. 문제 물건의 값과 돈을 입력받아 거스름돈을 quarters (25 cents), dimes (10 cents), nickels (5 cents), and pennies (1 cent)의 개수로 표현하세요! 코드 # Initialize variables quarters = dimes = nickels = pennies = 0 # Get the user input cost = float(input("How much does it cost?: ")) money = float(input(.. 2020. 12. 2.