본문 바로가기

algorithm87

[백준 2108번] 통계학 import sys input = sys.stdin.readline # n 입력받기 n = int(input()) # n개의 값을 저장하는 리스트 array = [0]*n # 빈도수를 저장하는 리스트 count_list = [] # 최빈값 mode = 0 # 입력받기 for i in range(n): array[i] = int(input()) # 중간 인덱스 mid_index = n//2 # 오름차순 정렬 array.sort() # 집합 자료형 사용 set_n = set(array) # 사전 자료형 사용 dictionary = dict() # 사전 자료형에 숫자 '값 : 빈도수(카운팅)' 저장 => 시간복잡도 최소화 for i in array: if i not in dictionary: dictionar.. 2023. 2. 24.
[백준 25305번] 커트라인 import sys input = sys.stdin.readline n, k = map(int,input().split()) array = sorted(list(map(int,input().split()))) print(array[n-k]) 2023. 2. 24.
[백준 2587번] 대표값2 import math array = [0] * 5 for i in range(5): array[i] = int(input()) array.sort() print(math.floor(sum(array)/5)) print(array[2]) 2023. 2. 24.
[백준 18870번] 좌표 압축 import sys input = sys.stdin.readline n = int(input()) array = list(map(int,input().split())) set_a = set(array) list_a = sorted(list(set_a)) dictionary = dict() for i in range(len(list_a)): dictionary[list_a[i]]=i for i in array: print(dictionary.get(i),end=" ") 2023. 2. 23.
[BinarySearch] 이진 탐색 알고리즘 개념 및 코드 정리 0) 이진 탐색 알고리즘이란 ? 탐색 범위를 반으로 좁혀가며 찾고자 하는 데이터를 빠르게 탐색하는 알고리즘 1) 순차 탐색(Sequential Search) 이번 장에서는 리스트 내에서 데이터를 매우 빠르게 탐색하는 이진 탐색 알고리즘에 대해서 공부하겠다. 이진 탐색에 대해 알아보기 전에 가장 기본 탐색 방법인 순차 탐색에 대해 먼저 이해할 필요가 있다. 순차 탐색이란 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법이다.(순차 탐색은 이름처럼 차례대로 데이터를 탐색한다는 의미) 보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용한다. 순차 탐색 알고리즘은 리스트 내에 데이터가 아무리 많아도 시간만 충분하다면 항상 원하는 원소(데이터)를 찾을 수 있다는.. 2023. 2. 23.
[백준 1764번] 듣보잡 ( + input과 sys.stdin.readline의 차이점) import sys input = sys.stdin.readline n, m = map(int,input().split()) list_n = [] list_m = [] count = 0 count_list = [] for i in range(n): list_n.append(input().rstrip()) for i in range(m): list_m.append(input().rstrip()) set_n = set(list_n) set_m = set(list_m) for i in set_m: if i in set_n: count += 1 count_list.append(i) count_list.sort() print(count) for i in count_list: print(i) 이번 문제는 두 개의 .. 2023. 2. 23.