본 게시글은 http://tryhelloworld.co.kr/ 에서 문제를 참고하여 풀이한 게시글입니다.
level 1 의 난이도 쉬움 문제입니다
문제
strange_sort함수는 strings와 n이라는 매개변수를 받아들입니다.
strings는 문자열로 구성된 리스트인데, 각 문자열을 인덱스 n인 글자를 기준으로 정렬하면 됩니다.
예를들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1인 문자 u, e ,a를 기준으로 정렬해야 하므로 결과는 ["car", "bed", "sun"]이 됩니다.
strange_sort함수를 완성해 보세요.
1 2 3 4 5 6 7 8 9 | def strange_sort(strings, n): '''strings의 문자열들을 n번째 글자를 기준으로 정렬해서 return하세요''' return [] # 아래는 테스트로 출력해 보기 위한 코드입니다. print( strange_sort(["sun", "bed", "car"], 1) ) | cs |
풀이
1 2 3 4 5 | def strange_sort(strings, n): return sorted(strings, key=lambda strings:strings[n]) # 아래는 테스트로 출력해 보기 위한 코드입니다. print( strange_sort(["sun", "bed", "car"], 1) ) | cs |
2번째줄을 봐야합니다.
sorted()는 입력한값을 정렬하고 결과값을 list로 출력해주는 함수입니다.
정렬후->list 출력
key는 딕셔너리에서 { } 안에 있는 값중 하나를 뜻하며
Ex) dict{"안녕", 1}로 치면 key="안녕", value=1로 볼 수 있습니다.
여기서 key는 sun, bed, car이 되며 value는 1이 되겠죠
lambda는 함수를 사용할때 쓰는데 주로 한줄로 간편하게 사용하고 싶을때 사용합니다.
지금 우리는 정렬을 해주기 위한 기준을 세우려고 lambda를 사용하겠습니다.
strings:strings[n] 기준을 세우는 것인데, strings를 불러와서 strings의 [n]번째 기준으로 하겠다는 뜻입니다.
1. 정리하자면 sorted를 사용해서 정렬후 list로 사용을 하겠다.
2. 받아오는 매개변수는 sun, bed, car, 1이다
여기서 sun, bed, car은 key이며 / 1은 value 라고 할수있다.
3. 받아온 수를 정렬할 기준을 세워야 하는데
3-1. 먼저 간단하게 비교하기 위하여 key를 lambda로 만들고,
3-2. strings를 불러와 stings의 n번째를 기준으로 정렬한다.
'파이썬 프로그래밍 > 파이썬 심화' 카테고리의 다른 글
[Python] 파이썬 예제. 피보나치 수 풀이 (0) | 2017.03.29 |
---|---|
[Python] 파이썬 예제. 딕셔너리 정렬 (0) | 2017.03.27 |
[Python] 파이썬 예제. 문자열 내 p와 y의 개수 구하기 (0) | 2017.03.27 |
[Python] 파이썬 예제. 삼각형 별찍기 (0) | 2017.03.27 |
[Python] 파이썬 예제. 입력한 수만큼 글자 슬라이스 풀이 (0) | 2017.03.26 |