본문 바로가기
프로그래머스/Python

[프로그래머스] 문자열 내 마음대로 정렬하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 7. 9.
728x90
반응형

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 설명

2. 풀이과정

  1. 인덱스 문자가 동일할 경우 사전순으로 정렬한 결과를 반환해야 하므로 먼저 사전순으로 문자열 리스트의 원소를 정렬한다. strings.sort()
  2. 문자열 리스트의 각 원소와 인덱스 문자를 저장할 딕셔너리를 생성한다. d = {}
  3. 문자열 리스트의 각 원소를 하나씩 추출한다. for i in strings
  4. 추출한 원소를 key로 하고 인덱스 문자를 value로 하여 딕셔너리에 추가한다. d[i] = i[n]
  5. 딕셔너리의 원소들을 value의 값으로 정렬한다. items() 메서드를 활용하여 딕셔너리의 key와 value를 tuple 형태로 묶어 리스트의 형태로 변환하고 lambda 식을 활용해 인덱스 문자가 저장된 1번째 값을 기준으로 오름차순 정렬을 해준다. d = sorted(d.items(), key = lambda x : x[1])
  6. 정렬한 딕셔너리의 각 원소를 하나씩 추출한다. for i in d
  7. 딕셔너리의 key를 정답에 추가한다. answer.append(i[0])
반응형

3. 소스코드

def solution(strings, n):
    answer = []
    
    strings.sort()
    
    d = {}
    for i in strings:
        d[i] = i[n]
    
    d = sorted(d.items(), key = lambda x : x[1])
    
    for i in d:
        answer.append(i[0])
        
    return answer
728x90
반응형