백준
백준 1181번 어떻게 풀었나. join(), lambda, sort(), set() 설명
kimbro6
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