Problem Solving (PS)(17)
-
1859. 백만 장자 프로젝트 [D2]
https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5LrsUaDxcDFAXc&categoryId=AV5LrsUaDxcDFAXc&categoryType=CODE&problemTitle=&orderBy=INQUERY_COUNT&selectCodeLang=PYTHON&select-1=2&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 아이디어 : 조건이 T '모든 날 중 매매가가 최대인 경우는 무조건 팔고, 그 이전 날들은 무조건 무조건 매입해야 한다' 그렇..
2023.04.30 -
이취코테(그리디 기초) - 모험가 길드
문제. 첫째 줄에 모험가 수 N이 주어지고, 두 번째 줄에는 각 모험가의 공포도가 공백을 기준으로 N개 주어진다. 공포도가 X인 모험가는 X명 이상으로 구성된 모험가 그룹에 참여해야만 여행을 떠날 수 있다. 모험가 중 일부는 마을에 남아 있어도 될 때, 여행을 떠날 수 있는 모험가 그룹의 최대 수를 출력하시오 조건) 1= 현재 공포도 # 즉, 그룹 결성 group += 1 # 총 그룹의 수 증가 member = 0 # member 초기화 print(group) 추가 예시) 54 3 3 3 3 3 3 3 3 4 4 4 4 4 5 5 입력이 위와 같이 주어졌을 때, 3 3 3 / 3 3 3 / 3 3 4 4 / 4 4 4 4 5 로 그룹을 나누게 되어 가능한 최대 그룹 수는 4개이다. + 내가 생각 못한 부..
2023.01.07 -
이취코테(그리디 기초) - 곱하기 혹은 더하기
문제. 각 자리가 0~9 로 이루어진 문자열 S 가 주어진다 왼쪽부터 오른쪽으로 x 나 +를 넣어 가장 큰 수를 만들어 출력하라. (단, x를 +보다 먼저 연산하지 않고 연산은 왼쪽부터 순서대로 이루어진다.) 입력 조건) 1 a, b 중 하나라도 0 or 1이 포함되어 있는 경우( ii)가 아닌 경우 ) ii) a+b a, b 모두 2이상인 경우 - 나의 풀이 : s = list(map(int, input())) result = 0 for i in s : if result >= 2 and i >= 2: result *= i else : result += i print(result)
2023.01.06 -
이취코테(그리디 기초) - N이 1이 될 때까지
문제. 어떤 수 N이 1이 될 때까지 다음 두 과정 중 하나를 반복한다. 1. N에서 1을 뺀다. 2. N이 K로 나누어 떨어지면, N을 K로 나눈다 예를 들어 N=17, K=4 라면, N=16 (1번 과정 수행) -> N=4 (2번 과정 수행) -> N=1 (2번 과정 수행) 총 3번의 과정을 수행하게 된다. N과 K가 주어질 때, N이 1이 될 때까지 1번 혹은 2번 과정을 수행해야 하는 최소 횟수 출력하라 입력 조건) 1= n 즉 n >= 2 에 대해 항상 성립하므로 n>=2 일 때 즉, 2번 방법이 가능할 경우 항상 2번 방법을 우선 선택한다 - 나의 풀이 : O(N) n, k = list(map(int, input().split())) count = 0 while (n > 1) : if ( n ..
2023.01.06 -
이취코테 - 그리디 알고리즘
HTML 삽입 미리보기할 수 없는 소스 : 매번 처해진 상황에서 최선을 선택하는 방법 -> 정당성 분석 : 매 단계마다 최적의 해 선택을 반복할 때, 최종 문제에 대한 최적의 해가 되는지 검토 필요 일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장하지 않는 경우가 많으나, 코테에서 대부분의 그리디 문제는 그리디 알고리즘으로 얻은 해가 최적의 해가 되는지를 추론할 수 있으면 풀리도록 출제 예시 문제. 거슬러 줄 돈을 입력받아 500원, 100원, 50원, 10원 동전이 무한히 많다는 가정하에 동전의 개수가 최소가 되도록 하여 돈을 거슬러 줄 때, 거슬러 준 각 동전의 개수와 총 동전의 개수를 출력 아이디어 : 큰 화폐 단위부터 거슬러주면 됨 -> 정당성 분석 : 큰 단위가 작은 단위의 배수이기 때문에 ..
2023.01.06 -
백준 11399번 : ATM
문제. https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 아이디어 : 각 사람이 돈을 인출하는데 필요한 시간의 합이 최솟값이 되기 위해서는 앞에 서있을수록 걸리는 시간이 적어야한다. -> 각 사람이 걸리는 시간을 오름차순으로 정렬하고, 앞의 idx부터 더하기 구현 : import sys n = int(input()) each = list(map(int, sys.stdin.readline().split())) each.sort() total = 0 some = [] for i ..
2022.11.08