sorting 17

[소프티어 6250번] 성적 평가(HSAT 5회 정기 코딩 인증평가 기출)

import sysinput = sys.stdin.readline# N명의 인원이 참여하는 스터디# 3개의 대회, 모든 구성원이 각 대회에 참여# 참가자는 각 대회에서 0이상 1000이하의 정수인 점수를 얻음# 한 대회에서 둘 이상의 참가자가 동점이 나오는 경우도 있음# 각 대회 별로 등수 및 최종 등수를 매김# 동점인 경우에는 공동 등수, 아닌 경우에는 일반 등수# 즉, 등수 = 나보다 점수가 높은 사람의 수 + 1# 각 참가자의 대회별 등수 / 최종 등수 출력# 입력 최대 범위 : 10^5n = int(input())score_list = []sum_list = [0] * nfor _ in range(3): init = list(map(int,input().split())) for i, ..

[백준 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..

Algorithm/Sorting 2023.02.24

[백준 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) 이번 문제는 두 개의 ..

Algorithm/Sorting 2023.02.23

[백준 10815번] 숫자 카드

1. 이진 탐색을 활용하여 푼 방법 (1856ms) n = int(input()) array_n = sorted(list(map(int,input().split()))) m = int(input()) array_m = list(map(int,input().split())) def binary_search(array,target,start,end): while start target: end = mid - 1 else: start = mid + 1 return 0 for i in array_m: print(binary_search(array_n,i,0,n-1),end=" ") 2. 집합(Set) 자료형을 사용하여 푼 방법 (664ms) n = int(input()) array_n = list(map(int..

[백준 2309번] 일곱 난쟁이

from itertools import combinations array = [0]*9 for i in range(9): array[i] = int(input()) remain = sum(array)-100 com_list = list(combinations(array,2)) for i in com_list: if sum(i) == remain: array.remove(i[0]) array.remove(i[1]) break array.sort() for i in array: print(i) 이번 문제는 정렬보다는 9명의 난쟁이 중 키의 합이 100이 되도록 만드는 조건을 구현하는 것이 관건인 문제였다. 문제에서 일곱 난쟁이를 찾을 수 없는 경우는 없다는 조건이 주어졌기 때문에, 무조건 난쟁이 7명이상은 ..

Algorithm/Sorting 2023.02.22