본문 바로가기

백준

(6)
[이코테/이진탐색/백준] 공유기 설치(정답,풀이) 문제 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 정답 n,c = map(int,input().split()) array = [int(input()) for _ in range(n)] array.sort() start = 1 end = array[-1] - array[0] result = 0 while start = value + mid :# 공유기를 설치할 수 있는 집이면 설치 value = array[i] # 다음 공유기 설치를 위해 이전에 공유기를 ..
[이코테/정렬] 카드 정렬하기 문제 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 정답 import heapq n = int(input()) heap = [] for i in range(n): data = int(input()) heapq.heappush(heap,data) # 만들어놓은 heap배열에 data를 넣을건데 기존의 값들과 비교해서 더 작은 값이 앞에 오도록 넣음 # 데이터의 삽입,수정,갱신에 따라 자동으로 재정렬됨 result = 0 while len(heap) != 1: # heap에 원소가 하나만 남게 되..
[이코테/bfs/삼성 기출] 인구 이동(정답, 풀이, 풀리지 않는 의문..) 문제 https://www.acmicpc.net/problem/16234 https://www.acmicpc.net/problem/16234 정답 from collections import deque n,l,r = map(int,input().split()) graph =[] for _ in range(n): graph.append(list(map(int,input().split()))) dx = [1,0,1,0] dy = [0,-1,0,1] def process(x,y,index): # 한 연합의 인구이동 로직 united = [] # 한 연합에 포함되는 나라가 담길 배열. 인구이동 시 필요 united.append((x,y)) q = deque() # dfs수행. 국경선을 여는 조건에 따라 연합을 확..
[이코테/dfs/백준] 감시 피하기(정답,풀이) 문제 18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net 내 정답 ============================= [ 1 ] ===================================== from itertools import combinations from collections import deque n = int(input()) ground = [] ts, cs = [],[] for i in range(n): data = list(input().split()) for j in range(le..
[그리디/python] 만들 수 없는 금액 (정답, 내 해석 및 풀이) 문제 동네 편의점의 주인인 동빈이는 N개의 동전을 가지고 있습니다. 이때 N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요. 예를 들어, N=5 이고, 각 동전이 각각 3원, 2원, 1원, 1원, 9원짜리(화폐 단위) 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 8원입니다. 또 다른 예시로, N=3이고, 각 동전이 각각 3원, 5원, 7원 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 1원입니다. 정답 n = int(input()) coin = list(map(int,input().split())) coin.sort() target = 1 for i in coin: if i > target:..
[이코테/구현] 럭키 스트레이트 문제 어떤 게임의 아웃복서 캐릭터에게는 럭키 스트레이트라는 기술이 존재한다. 이 기술은 매우 강력한 대신에 항상 사용할 수는 없으며, 현재 게임 내에서 점수가 특정 조건을 만족할 때만 사용할 수 있다. 특정 조건이란 현재 캐릭터의 점수를 N이라고 할 때 점수 N을 자릿수를 기준으로 반으로 나누어 왼쪽 부분의 각 자릿수의 합과 오른쪽 부분의 각 자릿수의 합을 더한 값이 동일한 상황을 의미한다. 예를 들어 현재 점수가 123,402라면 왼쪽 부분의 각 자릿수의 합은 1+2+3, 오른쪽 부분의 각 자릿수의 합은 4+0+2이므로 두 합이 6으로 동일하여 럭키 스트레이트를 사용할 수 있다. 현재 점수 N이 주어졌을 때, 럭키 스트레이트를 사용할 수 있는 상태인지 아닌지를 알려주는 프로그램을 작성하시오. 럭키 스트..