목록분류 전체보기 (271)
DHistory
문제 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 풀이 """ 30의 배수가 되기 위한 조건 1. 모든 수의 합이 3의 배수일 것 2. 0이 포함되어 있어야할 것 """ n = int(input()) def solution(n): numbers = sorted(list(map(int, str(n))), reverse=True) if 0 in numbers and sum(numbers) % 3 == 0: return numbers return [-1] print(*solution(n), sep='') 채점 결과
문제 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 풀이 """ N개의 로프 - 로프는 들 수 있는 물체의 중량이 서로 다를 수 있다. - 여러 개의 로프를 병렬로 연결하는 경우 w/k로 고르게 들 수있다. 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량은? """ import sys n = int(sys.stdin.readline().rstrip()) rope = [] for _ in range(n): rope.append(int(sys.stdin.readline().rstrip())) de..
문제 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로 동전 개수의 최솟값은? """ n, k = map(int, input().split()) coins = [] for _ in range(n): coins.append(int(input())) def soltuion(coins, k): answer = 0 coins = sorted(coins, reverse=True) for coin..
문제 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..