본문 바로가기

728x90

algorithm

[백준알고리즘] 2667번: 단지번호붙이기 -Python [백준알고리즘] 2667번: 단지번호붙이기 -Python https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수 www.acmicpc.net 맙소사 이거 풀고 나서 파이썬에서 비교문에 0 더보기
[백준알고리즘] 9466번: 텀 프로젝트 -Python [백준알고리즘] 9466번: 텀 프로젝트 -Python https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 문제 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 수도 있다. 프로젝트 팀을 구성하기 위해, 모든 학생들은 프로젝트를 함께하고 싶은 학생을 선택해야 한다. (단, 단 한 명만 선택할 수 있다.) 혼자 하고 싶어하는 학생은 자기 자신을 선택하는 것도 가능하다. 학생들이(s1, s2, ..., sr)이라 할 때, r= www.acmicpc.net 텀 프로젝트 팀을 이상하게 짠다고 한다. 사이클이 형성되는 인원들만 팀을 인정.. 더보기
[백준알고리즘] 2331번: 반복수열 -Python [백준알고리즘] 2331번: 반복수열 -Python https://www.acmicpc.net/problem/2331 2331번: 반복수열 첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다. www.acmicpc.net 처음 짠 코드와 다른 분들의 코드를 보고 수정한 코드를 다 가져왔다. 다른 분들의 코드를 보니 딱히 도움이 되지 않는 작업들을 한 것 같다. 우선은 참고했던 반례는 아래와 같다. in: 153 3 out: 0 in: 58 2 out: 0 in: 9999 5 out: 3 처음에 짰을 때에는 순열의 다음 값을 가리키기 위해서 리스트 link에 다음 값에 대한 정보를 추가했었다. 그리고 link에 포함되었던 값이 나오게 되면 사이클이 형성된 것이기 때문에 중복된.. 더보기
[백준알고리즘] 10451번: 순열 사이클 -Python [백준알고리즘] 10451번: 순열 사이클 -Python https://www.acmicpc.net/problem/10451 10451번: 순열 사이클 문제 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3& 2&7&8&1&4&5&6 \end{pmatrix}\) 와 같다. 또는, Figure 1과 같이 방향 그래프로 나타낼 수도 있다. 순열을 배열을 이용해 \(\begin{pmatrix} 1 www.acmicpc.net 수열이 주어지면 해당 수열에서 사이클이 몇 개나 형성이 되는지 찾는 문제이다.. 더보기
[백준알고리즘] 1707번: 이분 그래프 -Python [백준알고리즘] 1707번: 이분 그래프 -Python https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V(1≤V≤20,000)와 간선의 개수 E(1≤E≤200,000)가 빈 칸을 사이에 두고 순서대로 주어진다. 각 정점에는 1부터 V까지 차례로 번호가 붙어 있다. 이어서 둘째 줄부터 E개의 줄에 걸쳐 간선에 대한 정보가 주어지는데, 각 줄에 인접한 두 정점의 번호가 빈 칸을 사이에 두고 주어 www.acmicpc.net 20200424 아래에 새로 푼 코드를 첨부했다. 기존의 코드는 객체를 생성하.. 더보기
[백준알고리즘] 11724번: 연결 요소의 개수 -Python [백준알고리즘] 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.net 두 가지 방법을 풀었다. 이 문제는 주어진 연결 정보를 가지고 그래프가 몇 개가 생성이 되는지 찾는 문제이다. 처음에는 Disjoint Set (서로 베타적인 집합)을 나타내기 위해서 Union-Find와 유사한 알고리즘을 만들었다. 이후 질문 게시판이나 다른 분들의.. 더보기
[백준알고리즘] 1260번: DFS와 BFS -Python [백준알고리즘] 1260번: DFS와 BFS -Python https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. www.acmicpc.net DFS와 BFS를 한 문제에서 동시에 해결해야 하는 문제이다. 여러 경로가 가능한 경우 중에서 작은 번호의 정점을 우선 선택했을 때의 경로들을 출력하면 된다. 예에에에에전에 Java로 풀었던 적이 있는 문제이기도 하고 기본 DF.. 더보기
[백준알고리즘] 6588번: 골드바흐의 추측 -Python [백준알고리즘] 6588번: 골드바흐의 추측 -Python https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 문제 1742년, 독일의 아마추어 수학가 크리스티안 골드바흐는 레온하르트 오일러에게 다음과 같은 추측을 제안하는 편지를 보냈다. 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. 예를 들어 8은 3 + 5로 나타낼 수 있고, 3과 5는 모두 홀수인 소수이다. 또, 20 = 3 + 17 = 7 + 13, 42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23 이다. 이 추측은 아직도 해결되지 않은 문제이다. 백만 이하의 모 www.acmicpc.net 먼저 소수들을 구하기 위해서 에라토스테네스의 체를 사용했다. 에라토스테.. 더보기

728x90