본문 바로가기

Algorithm475

[파이썬, 자바] 백준 28707 : 배열 정렬 (골드1) [파이썬, 자바] 백준 28707 : 배열 정렬 (골드1)https://www.acmicpc.net/problem/28707풀이방향성 생각입력에 들어오는 숫자가 1부터 10이라 문자열로 변환하면 10이 인덱스 크기에 영향을 줄 수 있다.입력에 숫자가 들어올 때 -1을 빼주기.쿼리도 인덱스를 맞춰주기 위해 l,r에 각각 1씩 빼주기.리스트/배열 저장 대신 문자열로 변환해서 set에 저장하기.간선 크기가 달라서 BFS 대신 다익스트라 사용 파이썬# defaultdict로 초기값 INF로 저장장from collections import defaultdict as ddimport heapq as hqINF = float('inf')N = int(input())arr = list(map(lambda x : str.. 2025. 2. 27.
[파이썬] 백준 18809 : Gaaaaaaaaaarden (골드1) [파이썬] 백준 18809 : Gaaaaaaaaaarden (골드1)https://www.acmicpc.net/problem/11660풀이방향성 생각2차원 누적합을 통해서 중복 영역 계산을 피해준다. 전체코드from collections import dequeimport sysinput = lambda : sys.stdin.readline().strip()inside = lambda x,y : 0> 1) - 1)# brute forceanswer = -1# choose areafor choose_bit in gosper(L,A+B): choose_fertilizers = [fertilizers[i] for i in range(L) if (choose_bit>>i)&1] # A/B comb .. 2025. 2. 26.
[파이썬] 백준 16118 : 달빛 여우 (골드1) [파이썬] 백준 16118 : 달빛 여우 (골드1)https://www.acmicpc.net/problem/16118풀이방향성 생각늑대 / 여우 따로 Graph를 만들고 풀이 진행.간선은 기본 2배로 만들어주기 (늑대가 현재 빠르게 이동하는지, 느리게 이동하는지에 따라서 cost다익스트라를 따로 돌려주기.늑대의 경우엔 현재 빠르게 달릴 수 있는지, 없는지 fast라는 state를 힙에 같이 넣는다.fast이면 간선 비용이 절반인 cost를 가져오고, fast가 아니면 4배가 된 cost를 가져온다. 전체코드파이썬import sysimport heapq as hqinput = lambda : sys.stdin.readline().strip()INF = float('inf')# 간선 입력받기N,M = map.. 2025. 2. 24.
[파이썬, 자바] 백준 1559 : 놀라운 미로 (플레5) [파이썬, 자바] 백준 1559 : 놀라운 미로 (플레5)https://www.acmicpc.net/problem/1559풀이방향성 생각비트 BFS먹은 보물은 bit filed를 이용해서 구현하기.핵심 로직은 열려 있는 문을 %를 이용해서 구현하기.또한, 제자리에 대기하는 로직을 구현하기.제자리에서 대하는 경우, 더미 데이터가 큐에 쌓이는 것을 방지하기 위해 해당 위치의 첫 방문 시점을 t라고 하면 t + 4 미만인 경우까지만 큐에 넣어준다.진행하려는 방향마다 데이터를 삽입하지 않게 하기 위해 stay라는 boolean 변수를 사용.다익스트라로도 구현이 가능하다.다익스트라로 구현하는 경우, 제자리에서 대기하는 로직 대신 각 방향마다 t + wait time을 구현해서 삽입해주면 더 쉽게 구현이 가능하다... 2025. 2. 23.