목록Computer Science/Algorithm (244)
DHistory
문제 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 풀이 """ Nkg 배달 3kg 봉지 5kg 봉지 """ n = int(input()) def solution(n): five = 0 three = 0 while n > 0: if n % 5 == 0: five += n // 5 n %= 5 break n -= 3 three += 1 if n < 0: return -1 return five + three print(solution(n)) 채점 결과
문제 28136번: 원, 탁! 최소 몇 번의 원, 탁!이 필요한지 출력한다. www.acmicpc.net 풀이 """ 각 접시: 시계방향으로 1부터 N까지 번호 - i번째 접시에는 ai가 적혀있다. (N번 접시 이후 -> 1번 접시) 적절히 원판을 끊어 오름차순 배열을 만드는 것. 최소 횟수는? """ n = int(input()) numbers = list(map(int, input().split()))[:n] def solution(numbers): answer = 0 numbers += [numbers[0]] for i in range(len(numbers) - 1): if numbers[i] >= numbers[i + 1]: answer += 1 return answer print(solution..
문제 23028번: 5학년은 다니기 싫어요 2022년 1학기에는 전공 수업이 4과목, 비전공 수업이 3과목이 주어진다. 아리는 전공 2과목, 비전공 2과목을 듣게 되면 전공학점이 66학점, 총 학점이 132학점이 된다. 그래서 총 8학기 안에 졸업을 www.acmicpc.net 풀이 """ 총: 130학점 이상 수강 전공: 66학점 이상 수강 N학기 수강 완료 현재 전공 학점: A 현재 전체 학점: B n학기별 전공과목 xn, 비전공과목yn n학기당 최대 6과목 수강 가능 1과목당 3학점 (최대 18학점) !8학기 안에 졸업! """ n, a, b = map(int, input().split()) semester = [] for _ in range(10): x, y = map(int, input().sp..
문제 27466번: 그래서 대회 이름 뭐로 하죠 오늘도 운영진은 대회 이름을 정하고 있다. 몇 주째 대회 이름을 못 정하고 구글 드라이브, 지문/에디토리얼 파일, 디스코드 서버에 대회 이름으로 "대회 이름 뭐로 하죠"를 사용하고 있다. 그러 www.acmicpc.net 풀이 """ 대회 이름 정하기 규칙 1. 알파벳 대문자로 구성된 길이 N의 문자열 S를 정한다. 2. S에서 0개 이상의 문자를 지워서 대회 이름 T를 만든다. 3. T는 길이가 M인 운영진이 좋아하는 이름 - 맨 뒷글자는 알파벳 자음(AEIOU 제외) - 뒤에서부터 각각 두번째와 세번째 글자는 A인 문자열 최소 AAㅁ 가 되어야 함. """ import sys n, m = map(int, input().split()) s = sys.st..
문제 27940번: 가지 산사태 첫째 줄에 농장의 층수 $N$, 비가 오는 횟수 $M$, 각 층이 버틸 수 있는 빗물의 양을 나타내는 정수 $K$가 주어진다. $(1 \le N \le 10^5;$ $1 \le M \le 10^6;$ $1 \le K \le 2 \times 10^9)$ 둘째 줄부터 $M$개의 줄에 걸 www.acmicpc.net 풀이 """ N: 농장 층수 제일 낮은 곳: 1층 제일 높은 곳: N층 M: 비가 쏟아지는 횟수 i번째 비가 오는 순간 1층부터 ti층이 동시에 빗물을 각각 ri만큼 받음 (빗물의 양은 마지막 비가 내린 직후까지 누적) K: 층 별 받을 수 있는 빗물의 양 (넘어가는 경우 무너짐) """ import sys n, m, k = map (int, sys.stdin.re..
문제 25707번: 팔찌 만들기 N개의 구슬을 모두 사용하여 조건에 맞게 팔찌를 만들 때 사용하는 줄의 길이의 최솟값을 출력한다. www.acmicpc.net 풀이 """ 구슬 N개 -> 서로 다른 수 두 구슬 사이슷 잇는 줄의 길이: 두 구슬에 적힌 수둘의 차의 절댓값 """ n = int(input()) beads = list(map(int, input().split()))[:n] def solution(beads): # 각 두 구슬의 차 + (처음 구슬의 마지막 구슬 차) answer = 0 beads.sort() for i in range(len(beads)): answer += abs(beads[i] - beads[(i + 1) % len(beads)]) return answer print(so..
문제 12034번: 김인천씨의 식료품가게 (Large) 입력의 첫 번째 라인(줄)은 테스트 사례의 케이스의 수 T를 나타냅니다. 이후의 라인은 T개의 테스트 케이스가 이어집니다. 각 테스트 케이스는 두 줄로 구성됩니다. 첫 번째 줄에는 INU 식료품가 www.acmicpc.net 풀이 """ 모든 품목을 25% 할인된 가격으로 판매 정상가는 4의 배수인 정수 / 할인된 가격도 정수 할인가격과 정상가격을 따로 구분하지 않고 오름차순으로 정렬한 뒤 순서대로 출력 할인 가격표는? === example === 15 20 60 75 80 100 15 60 75 """ t = int(input()) def solution(prices): answer = [] prices = sorted(prices, reverse..
문제 25631번: 마트료시카 합치기 마트료시카는 속이 비어있는 인형이다. 성빈이는 $N$개의 마트료시카를 가지고 있다. $i$번째 마트료시카의 크기는 $a_i$이고, 마트료시카 속은 모두 비어있다. 성빈이는 남아 있는 마트료시카 중 www.acmicpc.net 풀이 1 """ N개의 마트료시카 i번째의 크기는 ai i번째와 j번째를 고른 뒤 i번째를 j번째에 넣을 수 있어야함. (단, j번째 마트료시카의 속이 비어있어야하고 i번째 마트료시카보다 j번째 마트료시카가 더 커야 함) 마트료시카를 최대한 합쳐서 정리 남아있는 마트료시카의 최소 개수는 얼마인가? """ n = int(input()) matryoshka = list(map(int, input().split()))[:n] def solution(m..
문제 25496번: 장신구 명장 임스 첫 번째 줄에 정수 $P$와 정수 $N$이 공백으로 구분되어 주어진다. ($1 \le P \le 200$, $1 \le N \le 1\,000$) 두 번째 줄에는 정수 $A_1, A_2, \dots, A_N$이 공백으로 구분되어 주어진다. ($1 \le A_i \le 200$) www.acmicpc.net 풀이 """ N: 만들 수 있는 장신구 Ai : 각각의 장신구를 만들면 누적되는 피로도 피로도가 200미마인 경우 장신구 제작 가능 현재 쌓인 피로도가 P일 대, 제작할 수 있는 장신구의 최대 개수는? """ p, n = map(int, input().split()) fatigue = list(map(int, input().split()))[:n] def solut..
문제 25644번: 최대 상승 미래를 예측하는 능력이 있는 정균이는 앞으로 $N$일간 ANA 회사의 주가가 어떻게 변하는지 정확히 예측할 수 있다. 정균이는 예측한 결과를 바탕으로 ANA 회사의 주식 한 주를 적당한 시점에 사고 www.acmicpc.net 풀이 """ N일간의 주가 a1, a2, ..., an i번째 날에 주식을 사고 j번째 날에 판다면 aj - ai 만큼의 이득 최대 이득은? """ n = int(input()) stocks = list(map(int, input().split()))[:n] def solution(stocks): if len(stocks)