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 식에 튜플을 넣으면 순서에 문제가 생기지 않는다.

 

'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