Algorithm PS👩🏻💻/백준
-
[백준] 2887번: 행성 터널(그래프, Python)Algorithm PS👩🏻💻/백준 2023. 5. 10. 02:21
백준-행성터널(2887) 문제문제때는 2040년, 이민혁은 우주에 자신만의 왕국을 만들었다. 왕국은 N개의 행성으로 이루어져 있다. 민혁이는 이 행성을 효율적으로 지배하기 위해서 행성을 연결하는 터널을 만들려고 한다.행성은 3차원 좌표위의 한 점으로 생각하면 된다. 두 행성 A(xA, yA, zA)와 B(xB, yB, zB)를 터널로 연결할 때 드는 비용은 min(|xA-xB|, |yA-yB|, |zA-zB|)이다.민혁이는 터널을 총 N-1개 건설해서 모든 행성이 서로 연결되게 하려고 한다. 이때, 모든 행성을 터널로 연결하는데 필요한 최소 비용을 구하는 프로그램을 작성하시오.입력첫째 줄에 행성의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 다음 N개 줄에는 각 행성의 x, y, z좌표가 주어진..
-
[백준] 22858번: 원상 복구 (small) (Python)Algorithm PS👩🏻💻/백준 2023. 5. 7. 17:37
문제 링크 https://www.acmicpc.net/problem/22858 22858번: 원상 복구 (small) 수가 적혀있는 $P_1, P_2, ..., P_N$ $N$개의 카드가 있다. 1부터 N까지 수가 하나씩 존재하는 $D_1, D_2, ... , D_i , ... D_N$ 가 있다. 이때 $D_i$는 $P_{D_i}$ 값을 $i$ 번째로 가지고 오는 것을 의미한다. 이러한 www.acmicpc.net 풀이 코드 P 카드를 D의 규칙에 따라 이동하는 문제 원래 카드인 P를 다시 찾는 것이므로 결과 카드인 S를 D의 규칙 반대로 이동시키기. P[Di] 카드를 i번째로 옮기기 -> S[i] 카드를 Di로 옮기기 from copy import deepcopy n, k = map(int, input..
-
[백준] 20438번: 출석체크 (Python)Algorithm PS👩🏻💻/백준 2023. 5. 4. 12:47
문제 20438번: 출석체크 1번째 줄에 학생의 수 N, 졸고 있는 학생의 수 K, 지환이가 출석 코드를 보낼 학생의 수 Q, 주어질 구간의 수 M이 주어진다. (1 ≤ K, Q ≤ N ≤ 5,000, 1 ≤ M ≤ 50,000) 2번째 줄과 3번째 줄에 각각 K명 www.acmicpc.net 풀이 코드 1 처음엔 출석 학생부터 누적합을 어떻게 활용해야 하나 고민했는데, 누적합에 대한 개념이 제대로 안섰나보다. 구간 M 누적합 attend = [0] * (N + 3) for i in range(3, N + 3): if not visited[i]: attend[i] = attend[i-1] + 1 else: attend[i] = attend[i-1] # 3. 답 프린트 answer = [] for s, e..
-
[백준] 1541번: 잃어버린 괄호 (Python)Algorithm PS👩🏻💻/백준 2023. 4. 23. 01:38
1. 문제 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 2. 문제 풀이 첫 번째 '-' 이전의 값은 더하고, 그 이후의 값은 모두 빼준다. '-', '+' 를 기준으로 나누고, '-'의 위치를 기준으로 숫자들의 합을 주해주면 되기 때문에 필요하기 때문에 정규식(re)이 필요했다. 정규식 정규식(re) 패턴 참고 사이트 []: 안에 들어간 문자를 기준으로 모두 구분한다. ex) '[AB]' : A또는 B를 기준으로 나눈다. (): 구분자..