백준 11651 좌표 정렬하기2(파이썬)

박진우·2022년 10월 15일
0

알고리즘

목록 보기
40/89

💡백준 11651 좌표 정렬하기2

◽ 문제





◽ 입력 & 출력





💡풀이

  • 11650 좌표 정렬하기 문제와 기준만 다르지 같은 문제이다.

  • 1~5번째 줄: n에 좌표의 개수를 입력받는다.



  • 6번째 줄: 정렬하고 넣을 빈 리스트를 선언한다.

  • 7번째 줄: 먼저 입력받은 개수만큼 반복문을 돌려준다.

  • 8~9번째 줄: map()을 이용하여 입력받고 split으로 int형으로 분리해주고, append()를 이용해 빈 리스트 li에 추가한다.

이 때 sort()함수에서 앞에 오는 튜플기준이되고 먼저 정렬이 되기 때문에 문제에서 요구한 y좌표를 기준으로 하기위해 (y,x)순으로 append해주었다.




  • 11번째 줄: sort() 함수를 이용하여 정렬한다.
  • 13~14번째 줄: 정렬하면 위와 같이 나오게 되는데 [1]번째가 먼저나오기 위해 [1][0]순으로 출력한다.



✅ 전체 풀이




✅ 다른 풀이

  • 12번째 줄: sort()함수에서 defaultx[0]x[1]순이였다면 ➡️ x[1]x[0]순서로 바꿔준다는 뜻




💡배운점

◽sort()에서 lambda활용

a=[(1,2),(0,1),(5,1),(5,2),(3,0)]

첫번째 인자 기준으로 오름차순 정렬
c=sorted(a,key=lambda x: x[0]) 
>>> c= [(0,1), (1,2),(3,0),(5,1),(5,2)]

d=sorted(a,key=lambda x: x[1])
>>> d= [(3,0), (0,1), (5,1), (1,2), (5,2)]


e=[(1,3), (0,3), (1,4), (1,5), (0,1), (2,4)]

첫 번째 인자 기준으로 오름차순 정렬 후
그 안에서 두 번째 인자 기준으로 내림차순 정렬
f=sorted(e,key=lambda x: (x[0], -x[1])) 
>>> f=[(0,3), (0,1), (1,5), (1,4), (1,3), (2,4)]

출저:https://velog.io/@sloools

0개의 댓글