728x90

알고리즘 4

[백준] 11724 연결 요소의 개수 / 파이썬 (Python)

문제 링크: https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주www.acmicpc.netthinking말만 어렵지 별 거 아니었다. (별 거 맞음) 연결 요소란,.... 됐다. 그냥 쉽게 생각하려면 예제를 그래프로 직접 그려보면 된다.서로 다른 그래프가 2개가 있는 게 아니라, 하나의 그래프에서 연결이 안된 것 뿐이다. 각각 나누어진 것을 연결요소라고 부르고, 저 2개를 세면 되는 문제이다. dfs와 bfs 두 가..

PS 2023.03.18

[백준] 1655 가운데를 말해요 / 파이썬 (Python)

문제 링크 : https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net thinking 진짜 모르겠어서 답 보고 했다. 백준아 그 게임 하지마요. 사실 예제 출력에 대해서 아직 이해 못함... heap씨가 다 해줄뿐... 해당 문제는 결국 정렬된 배열에서 중앙값을 구하는 문제인데, 시간 제한이 있어 힙을 사용해야한다. 중앙값을 구하기 위해서는 2개 힙으로 나누어 사용하는데, 최대힙에 1개의 값을 더 넣어 최대힙의 최대값이 중앙값이 되도록..

PS 2023.03.13

[백준] 11866 요세푸스 문제 0 / 파이썬 (Python)

문제 링크 : https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net thinking 처음엔 뭔 소리야...? 하고 바로 요세푸스 검색해봤다. 실화를 바탕으로 한 순열인데 결국 본인이 죽음 당하기(?) 전에 최후의 2인이 되는 법,,,이었다. 이 문제의 키포인트는 k번째의 사람을 제거하는 것이다. deque 라이브러리를 사용하여 큐로 구현했고 k= 3일때, 즉 index가 k-1일때 popleft()하여 결과 리스트에 저장한 후, 문제에서 원하는 방식대로 출력해주면 된다. from collections import deque n, k ..

PS 2023.03.11

[백준] 15649 N과 M (1) / 파이썬 (Python)

문제 링크 : https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net thinking 탈출조건 > 정답 리스트와 m의 길이가 같을때 탈출하며 출력 가지치기! 반복 > 수열 출력하는 부분 방문처리 > for문의 i로 정답 리스트에 있는 지 확인 > 있으면 중복되는 경우이므로 contiue로 for문 건너뛰기 n, m = map(int, input().split()) #n, m입력 ans = [] #정답 출력 list def n_m(): if len(a..

PS 2023.03.08
728x90