728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12915?language=python3
일단 알아야했던 포인트!!
dict 정렬!!
- key 기준으로 정렬 (오름차순)
sorted_dict = sorted(x.items())
- key 기준으로 정렬 (내림차순)
sorted_dict = sorted(x.items(), key=lambda item:item[0], reverse = True )
- value 기준으로 정렬 (오름차순)
sorted_dict = sorted(x.items(), key=lambda item:item[1])
- value 기준으로 정렬 (오름차순)
sorted_dict = sorted(x.items(), key=lambda item:item[1])
- value 기준으로 정렬 (내림차순)
sorted_dict - sorted(x.items(), key=lambda item:item[1], revers = True)
성공한 나의 코드 !!
일단 가장 생각을 많이했던 부분은 정렬.. 문법적인 문제와
"인덱스 1의 문자열이 같은 문자열이 존재할 경우"
>> 이부분을 곰곰히 생각해보다가.. 처음부터 strings 를 정렬 하고 시작하면 어떨까 생각해서 풀었더니 해결!
from collections import defaultdict
def solution(strings, n):
answer = []
#사전정렬 먼저 해주어야함. 같은 문자열이 여럿일 경우, 사전순으로 앞쪽에 위치해야 하기 때문.
strings = sorted(strings)
x = defaultdict(int)
for i in range(len(strings)):
x[i] = strings[i][n] #0:u, 1:e, 2:a
#defaultdict 정렬
sorted_dict = sorted(x.items(), key=lambda item:item[1])
print(sorted_dict) #[(1, 'a'), (0, 'e'), (2, 'u')]
#index 차례대로 answer 에 넣기
for i in range(len(sorted_dict)):
answer.append(strings[sorted_dict[i][0]])
return answer
다른사람 문제풀이
이렇게 간단한 방법이 있었다..정렬 문법 공부를 나름 했는데 이생각을 왜 못했지 ㅇ_ㅇ
def solution(strings, n):
return sorted(sorted(strings), key=lambda x: x[n])
'알고리즘 (JAVA) > 프로그래머스 알고리즘' 카테고리의 다른 글
[코테준비 - python] 시저 암호 level1 - 개발자배찌 (1) | 2022.12.15 |
---|---|
[코테준비 - python] 영어가 싫어요 level0 - 개발자 배찌 (0) | 2022.12.15 |
[코테준비 - python] 숫자의 표현 level2 - 개발자배찌 (1) | 2022.12.15 |
[코테준비 - python] 올바른 괄호 level2 - 개발자 배찌 (0) | 2022.12.14 |
[코테준비 - python] 햄버거만들기 level1 - 개발자 배찌 (0) | 2022.12.14 |