프로그래머스 연습문제
- Lv 1. 문자열 내 마음대로 정렬하기 (Python)
https://school.programmers.co.kr/learn/courses/30/lessons/12915
def solution(strings, n):
answer = []
strings.sort()
std_list = []
for i in range(len(strings)):
std_list.append(strings[i][n])
std_list.sort()
for i in std_list:
for j in range(len(strings)):
if(i == strings[j][n]):
if(strings[j] not in answer):
answer.append(strings[j])
return answer
return sorted(strings, key=lambda x: x[n])
for
문을 통해, 만약 n번째 단어 배열의 요소를 가지고 있는 단어를 찾으면 → answer
에 이미 들어있는게 아닌지 검사 → answer
에 넣은적 없는 값이면 append
answer
에 있는지 없는지 검사하는 이유는, 2번 예제처럼 만약 n번째 단어의 요소가 동일한 단어가 있다면 해당 단어가 중복되어 계속 들어가기 때문이다.set()
으로 중복을 제거하면 정렬한 의미가 사라지기 때문에 for
문의 조건문을 통해 처리하였다.
항상 좋은 글 감사합니다.