전체 글51 [백준] 2531 회전 초밥(파이썬/python) 🎈문제 https://www.acmicpc.net/problem/2531 🎁알고리즘 및 접근 브루트포스 1. 모든 경우의 수를 다 탐색해 보아야한다. 2. 이때, 2중 for문과 set을 활용해서 탐색했으나 시간초과가 났다. 3. defaultdict를 사용해서 시간이 오래 걸리는 set을 사용하지 않고, for문 하나로 탐색 가능했다. 💻정답 코드 # 2531 회전 초밥 from collections import defaultdict # import sys # input = sys.stdin.readline() n,d,k,c = map(int,input().split()) sushi = [int(input()) for _ in range(n)] eat = defaultdict(int) eat[c] +=.. 2023. 8. 23. [백준] 14940 쉬운 최단거리(파이썬/python) 🎈문제 https://www.acmicpc.net/problem/2109 🎁알고리즘 및 접근 우선순위 큐 1. 파이썬 내장함수인 heapq를 활용한다. 💻코드 # 2109 순회강연 import heapq # 입력받기 n = int(input()) univ = [list(map(int,input().split())) for _ in range(n)] univ = sorted(univ, key=lambda x:x[1]) # 데드라인 기준으로 정렬 lecture = [] for p,d in univ: ''' univ가 day기준으로 오름차순 정렬 되어 있으므로 데드라인이 짧은 순서로 대학 강연의 페이가 힙에 저장된다. 이때 저장될 때, 우선순위 큐를 활용하므로 페이가 낮은 순서대로 저장된다. ''' heapq.. 2023. 8. 21. [백준] 17484 진우의 달 여행(파이썬/python) 🎈문제 https://www.acmicpc.net/problem/17484 🎁알고리즘 및 접근 백트래킹 1. 끝까지 내려가 봐야 최적의 루트인지 알 수 있다. 2. 같은 방향으로 두번 연속 갈 수 없다. 따라서 같은 방향일 경우 탐색을 멈추도록 백트래킹을 사용한다. 💻코드 # 17484 진우의 달 여행 # 백트래킹 함수 구현 def dfs(x,y,depth,derection,cnt): global money # 행렬 맨 아래 행까지 탐색 후 그 동안 들었던 비용과 현재 최소값이 저장되어있는 money와 비교 if depth == n: money = min(money,cnt) return for i in range(3): # 3방향으로 탐색 시작 if derection == i: # 같은 방향일 때는 co.. 2023. 8. 19. [백준] 2638 치즈(파이썬/python) 🎈문제 https://www.acmicpc.net/problem/2638 🎁알고리즘 및 접근 bfs 1. 외부공기와 내부공기를 판단을 먼저 해야 녹을 치즈인지 아닌지를 판단할 수 있었다. 따라서 다음과 같은 순서로 코드를 짜기로 했다. 1) 외부공기 / 내부공기 판단 2) 녹을 치즈 판단 3) 하나라도 녹으면 시간 +1 2. 외부공기 / 내부공기 판단 (0,0)은 가장자리이므로 무조건 외부공기이다. 따라서 (0,0)부터 bfs를 돌리면 "외부공기"와 "치즈&내부공기" 로 나뉜다. 3. 녹을 치즈 판단 외부공기와 내부공기가 판단되면, 상하좌우를 살펴 외부공기가 2개 이상이면 치즈를 녹인다. 4. 반복 💻코드 # 2638 치즈 from collections import deque def Check(x,y):.. 2023. 8. 18. 이전 1 2 3 4 5 6 7 8 ··· 13 다음