728x90
반응형
<문제>
<소스코드>
import sys
t = int(input().rstrip())
lst = []
for _ in range(t):
lst.append(list(sys.stdin.readline().split()))
lst.sort(key = lambda x: int(x[0]))
for i in range(t):
print(lst[i][0], lst[i][1])
<NOTE>
1. 리스트 내포(List comprehensive)
리스트 내포란 for문과 if문을 한 라인에 작성하여 코드의 간결화하고 실행속도를 높이는 기법이다.
1) 기본 반복문
: 리스트명 = [반환식 for 변수 in iteration]
a = [10, 20, 30, 40, 50]
b = [i*100 for i in a]
print(b) #[1000, 2000, 3000, 4000, 5000]
2) 조건 반복문
: 리스트명 = [반환식 for 변수 in iteration 조건문]
a = 10, 20, 30, 40, 50
b = [i*(1/10) for i in a if i%2 == 0]
print(b) #[2, 4]
3) 이중 반복문
: 리스트명 = [반환식 for 변수1 in iteration for 변수2 in iteration]
a = [x+y for x in range(1, 3) for y in range(1, 5)]
print(a) #[2, 3, 4, 5, 3, 4, 5, 6,]
2. 람다 표현식(Lambda expression)
: lambda 매개변수: 반환식
#변수 할당
a = lambda x: x+10
print(a(1)) #11
#변수 없이 인자값 바로 적용
print((lambda x: x+10)(1)) #11
3. 정렬
보통 sorted() 또는 .sort()를 사용한다. key인자에는 무엇을 기준으로 정렬할 것인지 작성할 수 있다.
a = [[1, 3], [0, 5], [5, 2], [5, 3]]
a.sort(key = lambda x : x[0])
print(a) #[[0, 5], [1, 3], [5, 2], [5, 3]]
a.sort(key = lambda x: x[1])
print(a) #[[5, 2], [1, 3], [5, 3], [0, 5]]
#첫번째 인자를 기준으로 오름차순을 고려한 다음 두번째 인자를 기준으로 내림차순 #튜플이용
a.sort(key = lambda x: (x[0], -x[1])) #minus기호 붙이면 내림차순
print(a) #[[0, 5], [1, 3], [5, 3], [5, 2]]
728x90
반응형
'알고리즘 > 배열 \ 정렬' 카테고리의 다른 글
#29 [파이썬] 프로그래머스: 삼각 달팽이 (0) | 2021.07.02 |
---|---|
#21 [파이썬] 백준 11656번: 접미사 배열 (0) | 2021.04.25 |
#20 [파이썬] 백준 2535번: 아시아 정보올림피아드 (0) | 2021.04.25 |
#19 [파이썬] 백준 1755번: 숫자놀이 (0) | 2021.04.25 |
#17 [파이썬] 백준 4344번 문제: 평균은 넘겠지 (0) | 2021.04.21 |
댓글