본문 바로가기

Algorithm705

[DP/동적계획법] 백준 1965 상자넣기 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 1965번: 상자넣기 정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 www.acmicpc.net 2. 문제 풀이 상자의 크기가 나열된 수열이 주어집니다. 이전에 연속적으로 나왔던 작은 상자들은 이후에 나오는 큰 상자에 넣을 수 있습니다. 가장 많이 넣은 상자의 개수를 구해야 합니다. 2022.04.13 - [Algorithm] - [DP/동적계획법] 백준 11055 가장 큰 증가 부분 수열 - 파이썬(Python) [DP/동적계획법] 백준 11055 가장 큰 증가 부분 수열 - 파이썬(Python) [ Contents.. 2023. 7. 2.
[구현] 백준 10815 숫자 카드 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 2. 문제 풀이 해당 숫자가 기존 그룹에 있는지 없는지 판별하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N = int(input()) card = list(map(int, input().split())) M = int(input()) lst = list(map(int, input().split())) # 출력 for i in .. 2023. 7. 1.
[구현] 백준 24265 알고리즘 수업 - 알고리즘의 수행 시간 4 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 24265번: 알고리즘 수업 - 알고리즘의 수행 시간 4 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 2. 문제 풀이 MenOfPassion(A[], n) { sum 2023. 7. 1.
[구현/브루트포스] 백준 19532 수학은 비대면강의입니다 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 19532번: 수학은 비대면강의입니다 정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $- www.acmicpc.net 2. 문제 풀이 ax + by = c dx + ey = f 주어진 연립방정식을 푸는 문제입니다. 원래라면 x 혹은 y의 미지수를 소거해서 풀어야겠지만.... 단순하게 브루트포스로 풀 수도 있습니다. 3. 코드 import sys input = sys.stdin.readline # 입력 a, b, c, d, e, .. 2023. 7. 1.
[구현/수학] 백준 9063 대지 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 9063번: 대지 첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다. www.acmicpc.net 2. 문제 풀이 x, y 좌표의 최대 최소값을 구해 너비를 구하는 문제입니다. 주어진 좌표가 직사각형의 꼭짓점이 되는 게 아니기 때문에, 단순히 축별 최소 최대만 구해서 너비를 구하면 됩니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N = int(input()) max_x = -100000 max_y = -100000 min_x = 100000 min.. 2023. 7. 1.
[구현/수학] 백준 10813 공 바꾸기 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net 2. 문제 풀이 N개의 공이 나열되어 있고, 이를 M번 Swap하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline N, M = map(int, input().split()) lst = list(range(1, N+1)) for _ in range(M): i, j = map(int, input().split()) lst[i-1], lst[j-1] = lst[j-1], lst[.. 2023. 7. 1.
[탐색/BFS] 백준 24445 알고리즘 수업 - 너비 우선 탐색 2 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 24445번: 알고리즘 수업 - 너비 우선 탐색 2 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 2. 문제 풀이 BFS 탐색 알고리즘을 적용하는 예제 문제입니다. 2023.06.30 - [Algorithm] - [탐색/BFS] 백준 24444 알고리즘 수업 - 너비 우선 탐색 1 - Python [탐색/BFS] 백준 24444 알고리즘 수업 - 너비 우선 탐색 1 - Python [ Contents ] 1. 문제 (링크 참조) 24444번.. 2023. 6. 30.
[탐색/BFS] 백준 1325 효율적인 해킹 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) B 를 뜻하지만, 이 문제는 반대입니다. 이를 주의해서 BFS 알고리즘을 사용합니다. 3. 코드 from collections import deque import sys input = sys.stdin.readline # 입력 N, M = map(int, input().split()) graph = [[] for _ in range(N+1)] for _ in range(M): A, B = map(int, input().split()) graph[B].append(A) # bfs ans = [] for i in range(1, N+1): visited = [False]*(N+1) queue = deque([i]) visited[i] = True cnt = 1.. 2023. 6. 30.
[탐색/BFS] 백준 11060 점프 점프 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 11060번: 점프 점프 재환이가 1×N 크기의 미로에 갇혀있다. 미로는 1×1 크기의 칸으로 이루어져 있고, 각 칸에는 정수가 하나 쓰여 있다. i번째 칸에 쓰여 있는 수를 Ai라고 했을 때, 재환이는 Ai이하만큼 오른쪽으로 www.acmicpc.net 2. 문제 풀이 1칸부터 N칸까지 있으며 각 칸에 쓰인 숫자만큼 최대로 점프할 수 있습니다. 2022.02.24 - [Algorithm] - [탐색/BFS] 백준 1697 숨바꼭질 - Python [탐색/BFS] 백준 1697 숨바꼭질 - Python [ Contents ] 1. 문제 (링크 참조) 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,00.. 2023. 6. 30.