본문 바로가기
728x90

구현55

[python] 백준 2150 Strongly Connected Component https://www.acmicpc.net/problem/2150 문제 해결Kosaraju 알고리즘과 Tarjan 알고리즘 두가지 방법이 있다고 한다.하지만 하나 공부하기도 힘드므로 Kosaraju알고리즘을 공부하고 코드를 작성한다....Stack으로 DFS탐색을 하며 종료되는 노드를 append한 후 역방향 DFS를 통해 한번에 탐색되는 여러 정점을 SCC로 묶는 방법이 Kosaraju 알고리즘 방법이다. CODE import sysinput = sys.stdin.readlinesys.setrecursionlimit(10**6)def dfs(node, visited, stack): visited[node] = 1 for ne in graph[node]: if not visited.. 2024. 5. 9.
[python] 백준 6986 절사평균 https://www.acmicpc.net/problem/6986 6986번: 절사평균 첫째 줄에 절사평균(N, K)를, 둘째 줄에 보정평균(N, K)를 각각 소수점이하 셋째 자리에서 반올림하여 둘째 자리까지 출력한다. 예를 들어 결과값이 9.667인 경우 9.67로, 5인 경우 5.00으로, 5.5인 경우 www.acmicpc.net 문제 해결 우선 풀의 과정 순서는 어렵지 않다. 리스트를 만들어서 절사평균은 앞에 k개, 뒤에 k개를 빼고 평균을 구하고, 보정평균은 앞에 k개, 뒤에 k개를 각각 k, -k-1 인덱스 값으로 변환시키고 평균을 구하면 된다. 하지만 93%쯤에서 계속 오답이 나오는데 이유가 파이썬 나누기를 하는 과정중에 소수점 일부 계산이 손실되어 잘못 답이 나올 수 있다고 한다. 그래서 .. 2024. 4. 17.
[python] 백준 14582 오늘도 졌다 https://www.acmicpc.net/problem/14582 14582번: 오늘도 졌다 첫 번째 줄에는 9개의 정수가 주어지는데, 오늘 경기에서 울림 제미니스가 1회 초, 2회 초, ..., 9회 초에 낸 득점이 주어진다. 두 번째 줄에도 9개의 정수가 주어지는데, 스타트링크 걸리버스가 1회 www.acmicpc.net 문제 해결 제미나스가 초 공격이기 때문에 공격 시점에 이기고 있어도 역전패가 된다. 1회 초에 점수를 내게 된다면 무조건 역전패이다. accumulate 함수를 쓰면 간단하게 계산이 가능하다. CODE import sys input = sys.stdin.readline from itertools import accumulate if __name__ == "__main__": A =.. 2024. 4. 14.
[python] 백준 30677 반짝반짝 빛나는 별가루 https://www.acmicpc.net/problem/30677 30677번: 반짝반짝 빛나는 별가루 첫째 줄에는 $N,K,C,R$ 이 공백을 사이에 두고 주어진다. $(1 \leq K \leq N \leq 100 \, 000;$ $1 \leq C \leq 100;$ $1 \leq R \leq 100)$ 둘째 줄에는 $base_1, \cdots , base_K$가 공백을 사이에 두고 주어진다. $(1 \leq base_i \le www.acmicpc.net 문제해결 쉬운 문제인줄 알았는데 계속 오류가나서 많이 해매었던 문제 원인은 정밀도에 있었다고 한다. $combo*C$나 $skill_{i} s_{i}$같은 경우 소수점 계산에서 오류가 날 수 있다고 한다. 따라서 각각 100을 곱해준 다음 나중에 .. 2024. 2. 19.
728x90