diff --git "a/live9/test92/\353\254\270\354\240\2341/\353\260\261\354\234\240\354\247\204.py" "b/live9/test92/\353\254\270\354\240\2341/\353\260\261\354\234\240\354\247\204.py" new file mode 100644 index 00000000..7801f43d --- /dev/null +++ "b/live9/test92/\353\254\270\354\240\2341/\353\260\261\354\234\240\354\247\204.py" @@ -0,0 +1,18 @@ +import heapq + +def solution(scoville, K): + answer = 0 + heapq.heapify(scoville) + + while scoville[0] < K: + if len(scoville) <= 1: + return -1 + first = heapq.heappop(scoville) + second = heapq.heappop(scoville) + + result = first + second*2 + + heapq.heappush(scoville, result) + answer += 1 + + return answer \ No newline at end of file diff --git "a/live9/test92/\353\254\270\354\240\2342/\353\260\261\354\234\240\354\247\204.py" "b/live9/test92/\353\254\270\354\240\2342/\353\260\261\354\234\240\354\247\204.py" new file mode 100644 index 00000000..125d1ca6 --- /dev/null +++ "b/live9/test92/\353\254\270\354\240\2342/\353\260\261\354\234\240\354\247\204.py" @@ -0,0 +1,32 @@ +def solution(board, skill): + n = len(board) + m = len(board[0]) + + acc = [[0] * (m + 1) for _ in range(n + 1)] + + # skill 명령 누적합 배열에 기록 + for t, r1, c1, r2, c2, degree in skill: + diff = degree if t == 2 else -degree + acc[r1][c1] += diff + acc[r1][c2 + 1] -= diff + acc[r2 + 1][c1] -= diff + acc[r2 + 1][c2 + 1] += diff + + # 가로 누적합 + for i in range(n): + for j in range(1, m): + acc[i][j] += acc[i][j - 1] + + # 세로 누적합 + for j in range(m): + for i in range(1, n): + acc[i][j] += acc[i - 1][j] + + answer = 0 + for i in range(n): + for j in range(m): + board[i][j] += acc[i][j] + if board[i][j] > 0: + answer += 1 + + return answer diff --git "a/live9/test92/\353\254\270\354\240\2343/\353\260\261\354\234\240\354\247\204.py" "b/live9/test92/\353\254\270\354\240\2343/\353\260\261\354\234\240\354\247\204.py" new file mode 100644 index 00000000..85f9c6a0 --- /dev/null +++ "b/live9/test92/\353\254\270\354\240\2343/\353\260\261\354\234\240\354\247\204.py" @@ -0,0 +1,22 @@ +import heapq + +def solution(book_time): + reservations = [] + for start, end in book_time: + h, m = map(int, start.split(":")) + start_min = h * 60 + m + h, m = map(int, end.split(":")) + end_min = h * 60 + m + 10 # 청소 시간 포함 + reservations.append((start_min, end_min)) + reservations.sort() + + rooms = [] + + for start, end in reservations: + if rooms and rooms[0] <= start: + # 기존 방 사용 가능 + heapq.heappop(rooms) + # 새 방 배정 (또는 기존 방 갱신) + heapq.heappush(rooms, end) + + return len(rooms)