Algorithms63 백준 10814. 나이순 정렬 나이 순으로 정렬하고, 나이가 같다면 리스트의 순서를 바꾸지 않는 문제. 역시 클래스의 연산자 오버로딩을 이용해서 풀었다. n = int(input()) class Info : def __init__(self, age, name): self.age = age self.name = name def __lt__(self, c): return self.age < c.age lst = [] for i in range(n): age, name = input().split() age = int(age) lst.append(Info(age, name)) lst.sort() for i in lst: print(i.age, i.name) __lt__ ( 2022. 6. 7. 백준 1181. 단어 정렬 이번에는 단어를 입력받아 길이 순으로, 길이가 같으면 알파벳 순으로 정렬하고 중복이 있다면 제거하는 문제! 버블 소트에서 sort 조건을 바꿔서 풀었다. n = int(input()) def sort_lst(lst): lst = list(set(lst)) #중복 제거를 위해 집합으로 캐스팅 후 다시 리스트로 캐스팅 for i in range(len(lst)): for j in range(len(lst) - i - 1): if len(lst[j]) > len(lst[j + 1]): lst[j], lst[j + 1] = lst[j + 1], lst[j] elif len(lst[j]) == len(lst[j + 1]): if lst[j] > lst[j + 1]: lst[j], lst[j + 1] = lst[j.. 2022. 6. 7. 백준 11651. 좌표 정렬하기 2 직전 문제와 거의 동일하지만 y를 기준으로 정렬만 하면 됨 ! 역시 연산자 오버로딩과 sort() 함수를 이용해서 풀었다. class point : def __init__(self, x, y): self.x = x self.y = y def __lt__(self, c): if self.y == c.y : return self.x < c.x return self.y < c.y n = int(input()) lst = [] for i in range(n): a, b = map(int, input().split()) lst.append(point(a, b)) lst.sort() for i in lst: print(i.x, i.y) 2022. 6. 7. 백준 11650. 좌표 정렬하기 간단한 정렬 문제 ! x좌표를 기준으로 내림차순 정렬하고, x좌표가 같다면 y좌표를 기준으로 정렬한다. 문제를 보자마자 좌표 -> 클래스 객체로, 비교 -> 연산자 오버로딩으로 풀자는 생각이 들어서 그렇게 풀어봤다. class coord : def __init__(self, x, y): self.x = x self.y = y def __lt__(self, c): if (self.x == c.x): return (self.y < c.y) return self.x < c.x n = int(input()) lst = [] for i in range(n): a, b = map(int, input().split()) lst.append(coord(a, b)) lst.sort() for i in lst: print.. 2022. 6. 7. 이전 1 ··· 11 12 13 14 15 16 다음