본문 바로가기

Algorithm 💡/Sorting19

[백준 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.
[백준 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.
[백준 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명이상은 .. 2023. 2. 22.
[백준 11651번] 좌표 정렬하기 2 import sys input = sys.stdin.readline n = int(input()) array = [] for i in range(n): x, y = map(int,input().split()) array.append((x,y)) array.sort(key=lambda x:x[0]) array.sort(key=lambda x:x[1]) for i in array: print(f"{i[0]} {i[1]}") 2023. 2. 21.
[백준 10814번] 나이순 정렬 import sys input = sys.stdin.readline n = int(input()) array = [] for i in range(n): age, name = list(input().split()) array.append((int(age),name,i)) array.sort(key=lambda x:x[2]) array.sort(key=lambda x:x[0]) for i in range(n): print(f"{array[i][0]} {array[i][1]}") 2023. 2. 21.
[백준 11650번] 좌표 정렬하기 n = int(input()) array = [] for i in range(n): x, y = map(int,input().split()) array.append((x,y)) array.sort(key=lambda x:x[1]) array.sort(key=lambda x:x[0]) for i in array: print(f"{i[0]} {i[1]}") 2023. 2. 21.