목록전체 글 (270)
DHistory
문제 1758번: 알바생 강호 첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같 www.acmicpc.net 풀이 """ 8시가 될 때까지 대기 8시가 되는 순간 입구에서 커피를 받고 자리로 이동 "강호"는 커피를 하나씩 주는 역할 "손님"은 "강호"에게 팁을 줌 팁: 커피를 몇 번째 받는지에 따라 정해짐 (원래 주려고 했던 돈 - 받은 등수 + 1) 단, 음수인 경우 받을 수 없음 === example === 민호: 3원 재필: 2원 주현: 1원 민호 => 3 - 1 + 1 = 3 재필 => 2 - 2 + 1 = 1 주현 => 1 - 3 + 1..
문제 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 풀이 """ 뉴클레오티드: A,T,G,C TAACTGCCGAT => AGCAT / GGAAT 1, 3번째가 다르므로 Hamming Distance = 2 s1 ~ sn까지 Hamming Distance의 합이 가장 작은 새 DNA s를 구하시오. => s1 ~ sn 중 각 자리마다 가장 많이 나온 알파벳을 찾으면 됨. === example === TATGATAC TAAGCTAC AAAGATCC TGAGATAC T..
문제 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net 풀이 """ 총 레벨: N 각 레벨을 클리어할 때마다 점수가 주어짐 점수는 항상 양수 플레이어 점수: 각 레벨을 클리어하면서 얻은 점수의 합 (Online raking) 레벨을 난이도 순으로 배치 - 특정 레벨의 점수를 감소하여 각 레벨을 클리어할 때 주는 점수가 증가하게 만들려고 함. - 점수를 내리는 것을 최소한으로 하는 방법? """ n = int(input()) scores = [] for _ in range(n): scores.append(int..
문제 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 풀이 """ 기타줄의 개수: N 브랜드 개수: M 각 줄은 6개 패키지 가격 / 낱개 가격 기타줄 N개를 사는데 최소한의 비용은? (N개를 오버해서 구매하지만 값이 싼 경우가 있을 수 있다.) """ n, m = map(int, input().split()) brands = [] for _ in range(m): package, ea = map(int, input().split()) brands.append((package, ea)) def soluti..
문제 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='') 채점 결과