본문 바로가기

Algorithm475

[파이썬] 백준 24041 : 성싶당 밀키트 (골드4) [파이썬] 백준 24041 : 성싶당 밀키트 (골드4)https://www.acmicpc.net/problem/24041풀이방향성 생각NlogN -> 정렬 or 힙?세균 수를 결정하는 요소가 2가지날짜 역순으로 접근해서 풀이하기 어려움단일 변수면 특정 날짜에서 우선순위가 바로 정해지지만 2변수라 계산을 무조건 해야함범위가 2*1e9까지 가능 -> 최대 31회의 탐색으로 최대값 찾기 가능$31NlogN$으로 풀이가 가능시간을 줄이기 위해서 루프 탈출 조건을 넣어준다. 전체코드import sysinput = lambda : sys.stdin.readline().rstrip()def calc(S,L,day): return S*max(1,day-L)def eat(array,day,K): score =.. 2024. 6. 5.
[파이썬] 백준 9576 : 책 나눠주기 (골드2) [파이썬] 백준 9576 : 책 나눠주기 (골드2)https://www.acmicpc.net/problem/9576풀이방향성 생각구간의 맨 앞 요구부터 책을 나눠준다.피벗 세팅은 앞이든 뒤든 상관 없다.피벗이 앞이면 앞부터, 뒤면 뒤부터 세팅a전체코드import sysinput = lambda : sys.stdin.readline().rstrip()T = int(input())for _ in range(T): N,M = map(int,input().split()) # 입력 받아서, 끝 구간을 기준으로 정렬한다. 피벗을 앞으로 정한거니까 구간이 빨리 끝나는 사람부터 처리하기 demands = [list(map(int,input().split())) for _ in range(M)] d.. 2024. 5. 28.
[파이썬] 백준 17612 : 쇼핑몰 (골드2) [파이썬] 백준 17612 : 쇼핑몰 (골드2)https://www.acmicpc.net/problem/17612풀이방향성 생각K개의 계산대 중 최소 정보를 계속 찾아야 함 -> 힙 사용같은 시간대에서 여러 명이 빠질 수 있는 케이스 생각하기전체코드from collections import dequeimport heapq as hqimport sysinput = lambda : sys.stdin.readline().rstrip()N,M = map(int,input().split())Q = deque()for _ in range(N): Q.append(list(map(int,input().split())))# 사람들 계산대에 보내기heap = []for line in range(min(N,M)): .. 2024. 5. 28.
[파이썬] 백준 2143 : 두 배열의 합 (골드3) [파이썬] 백준 2143 : 두 배열의 합 (골드3)https://www.acmicpc.net/problem/2143풀이방향성 생각전형적인 해싱 문제각 배열 크기가 1000 -> 구간합 만들기구간합 값의 개수를 카운팅한다 -> O(1000^2)한 구간합을 카운팅한 dict에서 다른 구간합 카운팅 dict을 매칭시킨다.전체코드from collections import defaultdict as ddtarget = int(input())# 각 배열 만들어주기a = int(input())arr_A = list(map(int,input().split()))b = int(input())arr_B = list(map(int,input().split()))# 각 배열의 누적합 만들어주기cum_A = [0]for va.. 2024. 5. 26.