cording test
LV.1 문자열 내 마음대로 정렬하기
JM Lee
2023. 4. 7. 21:51
728x90
코딩테스트 연습 - 문자열 내 마음대로 정렬하기 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
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 식에 튜플을 넣으면 순서에 문제가 생기지 않는다.