목록문제/백준_파이썬 (155)
sm 기술 블로그
import sys input = sys.stdin.readline N = int(input()) personList = [] for _ in range(N): age, name = input().split() age = int(age) personList.append([age, name]) sortedPerson = sorted(personList, key=lambda x: (x[0])) for valAge, valName in sortedPerson: print(str(valAge)+" "+valName) 문제 요약 나이순으로 정렬하고 나이가 같다면 입력순으로 정렬하시오. 설명 리스트는 여러가지 형태의 값들을 한번에 저장이 가능하다. 따라서 나이는 int형으로, 이름은 string형으로 처리할 수 있..
import sys input = sys.stdin.readline() N = int(input()) arr = set([input().strip() for _ in range(N)]) arr = sorted(list(arr), key=lambda x: (len(x), x)) for val in arr: print(val) 문제요약 문자열을 받음 -> 길이가 짧은 순으로 정렬 -> 길이가 같으면 사전순으로 정렬해라 해결 strip() 은 문자열에 양옆 공백을 제거해준다. set()은 집합으로 중복을 제거해준다. 하지만 순서는 보장되지 않는다. 따라서 처음 입력받은 리스트를 집합으로 바꿔 중복을 제거 해주었다. sorted() 정렬은 리스트만 가능하다. 집합으로 형변환을 해준 현재 정렬을 바로 하기는 불가..
import sys input = sys.stdin.readline N = int(input()) arr = [list(map(int, input().split())) for _ in range(N)] arr.sort(key=lambda x: (x[1], x[0])) for x, y in arr: print(x, y) 문제요약 y기준으로 오름차순으로 정렬해라, 만약 y가 같다면 x기준으로 오름차순으로 정렬해라 해결 sort()에 내림차순으로 , 규칙에 따라(옵션) 부여할 수 있다. (reverse=True) : 내림차순으로 정렬한다. (key=lambda x : (x[0])) : 0번째 값을 기준으로 오름차순 정렬 (key=lambda x : (x[0] , x[1])) : 0번째 준으로 오름차순 정렬, ..
import sys input = sys.stdin.readline N = int(input()) arr = [list(map(int, input().split())) for _ in range(N)] arr.sort() for x, y in arr: print(x, y) 문제 요약 2차원 배열 정렬하시오. 설명 [list(map(int, input().split())) for _ in range(N)] 값을 받으면 공백으로 쪼개고 리스트형태로 리스트에 저장한다. 그러면 2차원 배열로 생성된다. sort()를 이용하여 정렬을 해준다 (파이썬에서는 2차원 배열이라도 x,y값 전부 정렬해주는 것 같다.)