코딩 도구/백준(49)
-
백준 11724 파이썬 sys.setrecursionlimit()
백준 11724 - 연결 요소의 개수 문제 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 답안 코드 : import sys sys.setrecursionlimit(10000) input = sys.stdin.readline n, m = map(int, input().split()) A = [[] for _ in range(n+1)] visited = [False] * (n+1) ..
2024.05.13 -
백준 10989 파이썬 기수정렬 계수정렬
백준 10989 - 수 정렬하기 3 문제 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 답안 코드 : import sys input = sys.stdin.readline N = int(input()) count = [0] * 10001 for i in range(N): count[int(input())] += 1 for i in range(10001): if count[i] != 0: for _ in range(count[i]): print(i) 생각 : # 문..
2024.02.24 -
백준 1517 파이썬 병합정렬 손풀이 플레티넘
백준 1517 - 버블 소트 문제 https://www.acmicpc.net/problem/1517 1517번: 버블 소트 첫째 줄에 N(1 ≤ N ≤ 500,000)이 주어진다. 다음 줄에는 N개의 정수로 A[1], A[2], …, A[N]이 주어진다. 각각의 A[i]는 0 ≤ |A[i]| ≤ 1,000,000,000의 범위에 들어있다. www.acmicpc.net 답안 코드 : import sys input = sys.stdin.readline result = 0 def merge_sort(s, e): global result if e - s < 1: return m = int(s + (e - s) / 2) merge_sort(s, m) # 재귀 함수의 형태로 구현 merge_sort(m + 1, e..
2024.02.22 -
백준 2751 파이썬 병합정렬
백준 2751 - 수 정렬하기 2 문제 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 답안 코드 : import sys input = sys.stdin.readline print = sys.stdout.write def merge_sort(s, e): if e - s < 1: return m = int(s + (e - s) / 2) merge_sort(s, m) merge_sort(m + 1, e) for i in range(s, ..
2024.02.21 -
백준 11004 파이썬 퀵 정렬
백준 11004 - k번째 수 문제 https://www.acmicpc.net/problem/11004 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 답안 코드 : import sys input = sys.stdin.readline N, K = map(int, input().split()) A = list(map(int, input().split())) def quickSort(S, E, K): global A if S < E: pivot = partition(S, E) if pivot == K: # K번째 수가 pivot이면 더이상 구할 필요 없음 return..
2024.02.20 -
백준 11399 파이썬 삽입정렬 그리디
백준 11399 - ATM 문제 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 답안 코드 : N = int(input()) A = list(map(int, input().split())) S = [0]*N # 합 배열 for i in range(1, N): # 삽입 정렬 insert_point = i insert_value = A[i] for j in range(i-1, -1, -1): if A[j] 그리디 # N의 최대값이 1,000 그리고 시간제한 1초니까 n^2이하 ..
2024.02.19