프로그래머스 문제
< 문자열 내 마음대로 정렬하기>
Q) strings안에는 단어들이 들어있는데 각 단어들의 인덱스 n으로 strings을 정렬하려고 한다.
문자열의 인덱스가 같은 경우에는, 사전순으로 문자열을 정렬해주어야한다.
A) 처음에는 문자열을 정리하기 위해서 for문을 통해서 각 인덱스만 뽑아서 따로 정렬하고 그 정렬한 것으로 다시 for문으로 정렬하고 문자열 인덱스가 같을 경우를 생각해서 for문을 돌려야해서 너무 복잡해져서 시간이 좀 걸렸던 문제이다. 고민끝에는 sort를 사용하기 위해서는 문자열의 첫번째 인덱스를 맞춰줘야한다는 생각을 했다.
1) sort를 사용하기 위해서 strings에 인덱스 n을 단어들 앞에 붙여준다.
2) 앞에 문자들이 위치했으니 sort를 이용해서 사용이 가능하다.
3) 인덱스 n이 위치하고있으니 앞에는 빼고 return하기 위해서 슬라이싱을 사용해서 첫번째 붙은 인덱스를 제외하고 리턴해준다.
A) 다른 사람의 풀이
sorted(strings, key = lambda x : (x[n],x))
고민하던 중에 for문이 너무 길어져서 lambda를 사용할까라고 생각했지만 너무 머리가 복잡해져서 일단 하던걸 마져해보자해서 진행했는데 lambda로는 한줄로 마무리할 수 있었다.
key를 통해서 strings에서 인덱스 n을 뽑아서 sorted를 하는데 인덱스가 겹치는 경우를 생각해서 x를 추가해 다른 남은 문자열들을 sorted 되도록 진행했다.
'공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2021.06.01 |
---|---|
[프로그래머스] 시저 암호 (0) | 2021.05.31 |
[프로그래머스] 완주하지 못한 선수 (0) | 2021.05.30 |
[프로그래머스] 문자열 내림차순 배치하기 (0) | 2021.05.25 |
[프로그래머스] 문자열 다루기 (0) | 2021.05.24 |