목록전체 글 (270)
DHistory
문제 16435번: 스네이크버드 첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기 길이 정수 L (1 ≤ L ≤ 10,000) 이 주어집니다. 두 번째 줄에는 정수 h1, h2, ..., hN (1 ≤ hi ≤ 10,000) 이 주어집니다. www.acmicpc.net 풀이 n, l = map(int, input().split()) heights = list(map(int, input().split()))[:n] def solution(l, heights): heights.sort() for height in heights: if l >= height: l += 1 return l print(solution(l, heights)) 채점 결과
문제 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 풀이 """ AAAA와 BB 사용 가능 .와 X로 이루어진 보드판 X를 모두 AAAA / BB로 덮으려고 함 (단, .은 덮으면 안됨) 사전순으로 가장 앞서는 답 출력 주의) 덮을 수 없으면 -1 출력 """ board = input() def solution(board): board = board.split('.') result = [] for element in board: count_x = element.count('X') if count_x % 2 != 0: return -1 else: a = count_x // 4 b = count_x % 4 resu..
문제 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net 풀이 """ 거스름 돈 동전의 최소 개수 거슬러 줄 수 없는 경우 -1 """ n = int(input()) def solution(n): five_coin = 0 two_coin = 0 while n > 0: if not n % 5: five_coin = n // 5 break n -= 2 two_coin += 1 if n < 0: return -1 return two_coin + five_coin print(solution(n)) 채점 결과
문제 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 풀이 """ 주의) 해당 주석이 있는 경우 오답 (23/08/11 기준) 문자열의 모든 숫자를 전부 같게 해야함. 문자열을 뒤집을 최소 횟수를 구하시오. 0/1 뒤집기 중 둘 중 더 작은 숫자 개수 """ s = input() def solution(s): queue = [] for i in s: if queue[-1:] != [i]: queue.append(i) return min(queue.count('0'), queue.count('1')) print..
문제 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 풀이 n = int(input()) def solution(n): answer = 0 for i in range(1, n + 1): if n < (i * i + i) // 2: break answer = i return answer print(solution(n)) 채점 결과