본문 바로가기

전체 글121

[백준 1027번] 고층 건물 문제 풀이 이 문제를 풀기 위해서는 i 번째 건물에서 (N-1)개의 건물들과 기울기를 구해서 비교해야 한다. 이때, i 번째 빌딩을 기준으로 왼쪽에 있는 경우, 가까운 건물들의 기울기 보다 작으면 보이고, i 번째 빌딩을 기준으로 오른쪽에 있는 경우, 가까운 건물들보다 기울키가 크면 보인다. 따라서, 가까운 빌딩들부터 순서대로 기울기를 구하고, 왼쪽의 경우 더 작은 기울기가 있으면 +1, 오른쪽의 경우 더 큰 기울기가 있으면 +1 해준다. N = int(input()) building = list(map(int, input().split())) INF = int(1e10) def angle(i, h1, j, h2): return (h2-h1)/(j-i) count.. 2023. 11. 5.
[2023-11-05 ~ 2023-11-11] 공부 계획 코테 유형별로 정리하기 백준 골드 3 찍기 싸피 인적성 검사 준비하기 스웨거 서버 올리기 전력 사용량 실시간 모니터링 기능 구현하기 2023. 11. 4.
[백준 12919번] A와 B 2 문제 풀이 처음에는 s에서 t가 될 수 있는 지를 확인했다. from collections import deque s = input() t = input() def first_way(s): return s+'A' def second_way(s): s += 'B' s = ''.join(reversed(s)) return s def rotate(s): s = ''.join(reversed(s)) return s queue = deque() queue.append(s) for s in queue: # 현재의 s나 뒤집은 s가 t에 없으면 만들 수 없으므로 0출력 queue.pop() while len(s) < len(t): if first_way(s) in t: s = firs.. 2023. 11. 4.
[백준 19598번] 배 문제 풀이 TRY 1 - 틀렸습니다. : 박스는 heapq에 넣어 놓고, 크레인의 개수만큼 꺼내어 크레인의 한계 무게와 비교하여 옮기지 못하는 경우에는 다시 heapq에 넣었다. (단, 크레인의 개수보다 남아있는 박스가 더 적은 경우를 고려해서, if 문을 통해 남아있으면 꺼내야 한다.) heapq가 빌 때까지 반복하여 옮기는데 걸리는 시간을 구한다. 하지만, heapq를 통해 남은 박스를 고르면 작은 순서 부터 나와서 한 번의 기회에 더 많은 박스를 옮길 수 있는 조합이 아닐 수 있다는 점을 간과했다. import sys import heapq input = sys.stdin.readline N = int(input()) crane = list(map(int, input().split(.. 2023. 11. 4.
[백준 13164번] 행복 유치원 문제 풀이 k개의 그룹을 만들기 위해서는 k-1 개의 구분이 필요하다. 연속하는 숫자의 차이를 계산한다. 위의 경우, 3개의 구분이 필요하다. 차이가 큰 3개를 없애주는 것이 차이를 가장 줄일 수 있는 방법이다. 예시에서는 2, 4, 4 차이가 있는 부분에 구분을 두는 것이 가장 차이의 합이 작아진다. 1번과 2번의 경우 같은 2, 4, 4를 줄이기 때문에 결과값은 같다. import sys input = sys.stdin.readline N, K = map(int, input().split()) height = list(map(int, input().split())) height.sort() diff = [] # 연속하는 수의 차이를 담을 배열 for i .. 2023. 11. 4.