728x90
코딩테스트 연습 - 문자열 내 마음대로 정렬하기 | 프로그래머스 스쿨 (programmers.co.kr)
1. for문을 이용한 문제풀이
def solution(strings, n):
answer = []
n_answer = [] #n번째 문자를 저장하는 배열
for string in strings: #strings에 들어있는 단어를 하나씩 가져오기
n_answer.append(string[n]) #단어의 n번째 문자를 n_answer에 저장하기
n_answer.sort() #n_answer를 오름차순으로 정렬하기
for i in n_answer: #정렬되어 있는 n_answer에 해당하는 문자와
for string in strings: #strings에 해당하는 단어의 n번째 수가 같을 경우
if string[n] == i:
answer.append(string) #그 순서대로 answer배열에 저장
return answer
2. sorted 함수와 lambda를 이용한 문제풀이
def solution(strings, n):
return sorted(strings, key=lambda x:(x[n],x))
# 문자열에서 key 값을 lambda로 하여 x[n] 간에 문자열을 분류.
# x[n]문자열이 같은 경우에는 원소 자체인 x의 순서대로 이어짐.
# 이는 두 번 sorted되는 효과를 가져다줌
# lambda 식에 튜플을 넣으면 순서에 문제가 생기지 않는다.
'cording test' 카테고리의 다른 글
LV.1 없는 숫자 더하기 (0) | 2023.04.18 |
---|---|
LV.1 성격 유형 검사하기 (0) | 2023.04.17 |
LV.0 가위바위보 (0) | 2023.04.07 |
LV.0 로그인 성공 (0) | 2023.04.05 |
LV.0 숫자 찾기(enumerate, find 함수를 통한 해결) (4) | 2023.03.31 |