Coding Test/정렬 16

[TIL] 정렬(백준 7795파이썬) 2022.03.28

import bisect for _ in range(int(input())): N, M = map(int, input().split()) A = sorted(list(map(int, input().split()))) B = sorted(list(map(int, input().split()))) cnt = 0 for a in A: cnt += (bisect.bisect_left(B, a)) #왼쪽의 index를 반환, 같은 case를 고려하면 bisect_left가 맞다 print(cnt) https://www.acmicpc.net/problem/7795 7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다..

Coding Test/정렬 2022.03.28

[TIL] 정렬(백준 18870 파이썬) 2022.01.29

https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net import sys T = int(input()) #테스트케이스 for i in range(0,T): Cnt = 1 people = [] N = int(input()) for i in range(N): Paper, Interview = map(int,sys.stdin.readline().split()) people.append([Paper, Interview]) people...

Coding Test/정렬 2022.01.30

[TIL] 정렬(백준 18870 파이썬) 2022.01.28

https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net n=int(input()) can=list(map(int,input().split())) cc=list(sorted(set(can))) compressed_dic ={} for i in range(len(cc)): compressed_dic[cc[i]]=i for i in range(n): print(compressed_dic[can[i]], en..

Coding Test/정렬 2022.01.28

[TIL] 정렬(백준 11399 파이썬) 2022.01.27

https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net import sys n=int(sys.stdin.readline()) p=list(map(int,sys.stdin.readline().split())) ans=[] for i in range(n): ans.append([i,p[i]]) ans.sort(key=lambda x: x[1]) a=[ans[i][1] for i in range(n)] for i in range(1,n+1): if i ==1: a[0] = a[0] el..

Coding Test/정렬 2022.01.27

[TIL] 정렬(백준 2012 파이썬) 2022.01.26

https://www.acmicpc.net/problem/2012 2012번: 등수 매기기 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다. www.acmicpc.net import sys n=int(sys.stdin.readline().strip()) expected_list=[] for i in range(n): expected_list.append(int(sys.stdin.readline().strip())) expected_list.sort() result = 0 for i in range(1, n+1): result += abs(i-expected_list[i-..

Coding Test/정렬 2022.01.26

[TIL] 정렬(백준 18310 파이썬) 2022.01.25

https://www.acmicpc.net/problem/18310 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net n=int(input()) points=list(map(int,input().split())) points.sort() ans=points[(n-1)//2] print(ans) 접근방법 : 최소로 뻗어가는 포인트는 중간의 위치이다. 자세한 증명은....일단생략...

Coding Test/정렬 2022.01.25

[TIL] 정렬(백준 1431 파이썬) 2022.01.24

https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net import sys input = sys.stdin.readline def num_sum(line): num_s=0 for i in line: if i.isdigit(): num_s += int(i) return num_s N=int(input()) lines=[input().rstrip() for _ in range(N)] lines.sort(key = lambda x: (len(x), n..

Coding Test/정렬 2022.01.24

[TIL] 정렬(백준 1302 파이썬) 2022.01.23

https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net n=int(input()) a=list(map(int,input().split())) b=list(map(int,input().split())) s = 0 for i in range(n): s += min(a) * max(b) a.pop(a.index(min(a))) b.pop(b.index(max(b))) print(s) 결국 a list의 min값 + b list의 max값을 번갈아가면..

Coding Test/정렬 2022.01.23