-
백준 1181번 어떻게 풀었나. join(), lambda, sort(), set() 설명백준 2023. 1. 8. 00:01
- 푼 방법
- 내장함수 sort()와 set()을 사용함
- 좋았던점
- 원하는 동작을 하는 함수를 생각하고, 그 함수를 내장함수에서 찾았다.
- 고치면 좋을 부분
- 내장함수를 더 알고 있었으면 더 빨리 풀 수 있을거 같다.
- 새롭게 안 내용
- set()
- 중복 제거
- sort() 완벽하게
- .sort(key=원하는 함수) 로 정렬 기준을 새울 수 있다.
- key가 여러개일때
- 튜플형식으로 key = lambda x: (x[0] , x[2]) lambda식을 세워주면 된다.
- 그리고 내림차순으로 하고 싶다면 마이너스 부호를 붙여주면 된다. key= lambda x: (-x[0], x[2])
- '구분자'.join(리스트)
- '_'.join(['a', 'b', 'c']) == "a_b_c" # = True
- lambda
- 사용법 : lambda 매개변수 : 표현식
- 아래 코드는 같은 기능을 한다.
- set()
>>> def hap(x, y): ... return x + y ... >>> hap(10, 20) 30 ______________________________________ >>> (lambda x,y: x + y)(10, 20) 30 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 알파벳 순서가 아니라, 앞뒤 불필요한 공백을 제외한 문자의 길이로 정렬을 하고 싶다면: def my_key(string): return len(string.strip()) target = [' cat ', ' tiger ', ' dog', 'snake '] print(sorted(target, key=my_key)) ______________________________________ print(sorted(target, key=lambda x : len(x.strip())))
코드
import sys N = int(sys.stdin.readline()) A = [sys.stdin.readline().rstrip() for _ in range(N)] A = list(set(A)) A.sort() A.sort(key=len) print("\n".join(A))
참고자료
sort() : https://infinitt.tistory.com/122
join() : https://blockdmask.tistory.com/468
lambda : https://wikidocs.net/22804
'백준' 카테고리의 다른 글
백준 10816번 어떻게 풀었나. (0) 2023.01.10 백준 11650번 어떻게 풀었나. lambda 사용 (0) 2023.01.09 백준 1026번 어떻게 풀었나 (0) 2023.01.07 백준 1406번 어떻게 풀었나. 파이썬 내장함수 시간복잡도 정리 (0) 2023.01.06 백준 10828번 어떻게 풀었나, 스택(Stack) 구현 (0) 2023.01.05 - 푼 방법