코테(3)
-
[python] 계수정렬
카운트 할 배열을 선언하고, 정렬할 배열 요소가 몇개가 있는지 카운트 배열 각 인덱스에 담는다 데이터의 크기가 한정되어 빠르게 동작해야할 때 사용된다. 예제를 통해 [7, 5, 9, 0, 3, 1, 6, 2, 9, 1, 4, 8, 0, 5, 2] 배열을 순서대로 정렬해보자 step 0 배열과 요소의 갯수를 셀 배열 선언 arr = [7, 5, 9, 0, 3, 1, 6, 2, 9, 1, 4, 8, 0, 5, 2] cnt = [0] * (max(arr) + 1) # arr 변수에 요소가 몇개가 있는지 셀 배열 step 1 arr = [7, 5, 9, 0, 3, 1, 6, 2, 9, 1, 4, 8, 0, 5, 2] 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 1 0 0 step 2 arr = ..
2023.02.07 -
[Python] 백준 파이썬 풀이 11724/연결 요소의 개수
문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다. 출력 첫째 줄에 연결 요소의 개수를 출력한다. 예제 입력 1 6 5 1 2 2 5 5 1 3 4 4 6 예제 출력 1 2 import sys input = sys.stdin.readline sys.setrecursionlimit(1000000) #재귀 최대깊이, dfs 사용 시 오류 방지 n, m = map(int, inp..
2023.02.02 -
[Python] 백준 10989번 수 정렬하기 3 /메모리 초과 오류 해결
import sys input = sys.stdin.readline n = int(input()) arr = [] for i in range(n): arr.append(int(input())) arr.sort() for i in arr: print(i) 입력받은 값을 빈 배열 arr에 append 후, sort()함수로 오름차순하여 출력하는 형식을 생각했다 하지만 메모리 초과 발생...! 메모리 제한이 8MB로 굉장히 작은데, 많은 메모리를 소요하는 파이썬으로 실행하니 쉬운 문제임에도 불구하고 오래 걸렸다.... 메모리 초과 발생 이유 (1) sort,sorted를 사용 (2) sys.stdin.readline이 아닌 그냥 input()를 사용 (3) for 문 안에 append를 작성 따라서 이 문제는..
2023.01.30