본문 바로가기

코딩 테스트48

[백준 2457번] 공주님의 정원 문제 풀이 (with Python) 날짜 비교를 편하게 하기 위해 날짜를 아래와 같이 정수로 나타내 주었다. calendar = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 각 달의 마지막 날짜 def calculateDate(x, y): date = 0 for i in range(x-1): date += calendar[i] date += y return date 각 꽃이 피고 지는 시기를 정수로 계산해 배열에 넣어 준후, 배열을 피는 시기로 먼저 오름차순 배열한 후, 지는 시기로 오름 차순 배열했다. blossom.sort(key=lambda x: (x[0], x[1])) TRY 1 - 이 전의 지는 시기보다 다음 꽃이 피는 시기가 작거나 같으면서, .. 2023. 11. 27.
[백준 1080번] 행렬 문제 풀이 3 X 3 크기의 행렬로만 바꾸어야 한다. 바꾼 곳을 체크하기 위해서 3 X 3에서 가장 첫번째 부분이 될 수 있는 인덱스를 배열에 추가하여 관리하기로 했다. 최솟값을 구해야 하므로, 가장 다른 것이 많은 부분부터 바꾸는 방법을 택했다. 2023. 11. 19.
[백준 2533번] 사회망 서비스(SNS) 문제 풀이 (with Python) 2023. 11. 10.
[백준 2110번] 공유기 설치 문제 풀이 (with Python) 이분 탐색을 이용하면 간단하게 풀린다. 거리를 이분 탐색의 변수로 놓는다는 생각이 새로운 문제였다. 공유기는 같은 집에 있을 수 없으므로, start = 1, end = 가장 먼 집의 거리로 놓고, 가운데를 mid로 놓아 mid 거리만큼에 공유기를 설치했을 때 설치되는 공유기의 개수와 C를 비교해서 start나 end의 크기를 바꾸어 주었다. import sys input = sys.stdin.readline arr = [] N, C = map(int, input().split()) for i in range(N): arr.append(int(input())) arr.sort() start = 1 # 두 공유기 사이의 거리 최소값 end = arr[-1.. 2023. 11. 10.