목록정렬 (47)
기록방
👉 문제링크 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 🔸 문제 분석 🔸 걸리는 시간 숫자의 수와 숫자들의 리스트가 입력된다. 각 리스트 별 끝나는 시간들의 총합의 최소값을 출력한다. 문제 설명은 그리디 알고리즘 이지만, 정렬로 간단히 풀린다. 🔸 코드 🔸 import sys n = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().rstrip().split())) arr.sort() sum_num = 0 for i in range(n): sum_num += sum(..
👉 문제링크 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 이름들을 n개 입력받고, 다시 m번 입력받아 겹치는 이름들을 체크한다. 해시를 활용하는 문제이다. 🔸 코드 🔸 import sys n, m = map(int, sys.stdin.readline().split()) name = set() answer = list() for i in range(n): name.add(sys.stdin.readline().rstrip()) for i in range(m): isin = sys.stdin..
👉 문제링크 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 🔸 문제 분석 🔸 입력받은 숫자들의 산술평균, 중앙값, 최빈값, 범위를 출력한다. 🔸 코드 🔸 import sys from collections import Counter input = sys.stdin.readline print = sys.stdout.write N = int(input()) arr = [] for i in range(N): arr.append(int(input())) arr.sort() print(str(round(sum(arr)/N)) + "..
👉 문제링크 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 🔸 문제 분석 🔸 값 목록을 입력받고, 입력 받은 값이 몇 번 호출됐는지 출력한다. 목록으로 입력받지 않은 것들은 0으로 출력한다. 🔸 코드 🔸 import sys input = sys.stdin.readline print = sys.stdout.write dic = {} int(input().strip()) arr = input().strip().split() for i in arr: if i in dic: dic[..
👉 문제링크 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 🔸 문제 분석 🔸 두 가지 기준으로 정렬하는 문제이다. 🔸 코드 🔸 N = int(input()) arr = [] for i in range(N): arr.append(list(map(int,input().split()))) arr.sort(key= lambda x: (x[1],x[0])) for i in arr: print(i[0], i[1]) 🔸 코드 해석 🔸 sort함수에서 key값을 조정..