그리디

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 def solution(number, k): answer = [] for n in number: while answer and k > 0 and answer[-1] < n: answer.pop() k -= 1 answer.append(n) return ''.join(answer[:len(number) - k]) combinations를 활용해서 최대를 구하는 방식을 생각해보았..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42885?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 def solution(people, limit): answer = 0 people.sort() start, end = 0, len(people) - 1 while start < end: answer += 1 if people[start] + people[end]
문제 링크 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제 문제 풀이 최선으로 가장 적은 시간을 구해내기 위해서는 무조건 인출 시간이 짧은 사람이 먼저 와야 한다. 정렬을 통해 인출 시간이 짧은 순으로 나열하고 모든 인출시간을 더해준다. n = int(input()) arr = list(map(int, input().split())) arr.sort() result = 0 sum = 0 for i in arr: result += i sum += result print(..
문제 링크 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 문제 문제 풀이 * 30의 배수의 조건 * 1) 각 자리수 값을 더했을 때 3의 배수가 되어야 한다 2) 일의 자리 수는 0이 되어야 한다 n = list(input()) n.sort(reverse=True) sum = 0 for i in n: sum += int(i) if sum % 3 != 0 or "0" not in n: print(-1) else: print(''.join(n))
문제 링크 https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 문제 문제 풀이 while을 이용한 조건문을 이용한 풀이이다. 여학생 2명, 남학생 1명으로 팀이 꾸려지고, 여학생과 남학생을 합친 수는 팀을 꾸릴 수 있는 3명에 인턴십 인원 K까지 포함되어야 한다. 이 조건까지 while문을 돌려 팀 수를 도출한다. N, M, K = map(int, input().split()) result = 0 while N >= 2 and M >= 1 and N + M >= K + 3: N -= 2 M -= 1 result +=..
문제 링크 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제 문제 풀이 남은 금액에 대해 나눌 수 있는 가장 큰 금액을 더해나가는 간단한 풀이이다. n, k = map(int, input().split()) m = [] num = 0 for i in range(n): m.append(int(input())) for i in range(n - 1, -1, -1): if k == ..
YOONJELLY
'그리디' 태그의 글 목록