[Algorithm/Python][프로그래머스] 문자열 내 마음대로 정렬하기

동글이·2022년 5월 22일
0

Algorithm

목록 보기
3/33

[프로그래머스] 문자열 내 마음대로 정렬하기

https://school.programmers.co.kr/learn/courses/30/lessons/12915

- dict() 이용해서 정렬 마스터할 수 있는 문제!💛💛💛

=> value만 정렬하면 dict() 상태에서 정렬해도 되지만, key 값도 정렬하고 value 값도 정렬해야하기 때문에 items()써서 튜플로 만들어서 list로 만들어 줘서 해당 값을 정렬함!

def solution(strings, n):
    result2=[]
    array=dict()
    for i in strings:
        array[i]=i[n]
        
    array2=list(array.items())  
    # items() 안하면 정렬 후 key만 표기해줌!
    # (그러므로 key랑 value 둘 다 표기하고 싶을 땐 items()), 
    # 그래서 items()붙이고 list로 만들어서 제작함
    array3=sorted(array2)   # key 값으로 정렬하기
    result=sorted(array3, key=lambda k : k[1])   # value 값으로 정렬하기
    for key in result:
        result2.append(key[0])
    return result2

+ dict 사전 - 정렬

  1. 정렬
    파이썬의 사전은 key : value 쌍으로 값이 들어 있으며, 이를 정렬(sort)하면 기본으로 키(key)을 기준으로 올림 차순으로 정렬합니다.

fruits = { 'apple': 2, 'banana' : 1, 'melon' : 0, 'pear' : 2, 'plum' : 1}
sorted(fruits)

['apple', 'banana', 'melon', 'pear', 'plum']

sorted(fruits.keys())

['apple', 'banana', 'melon', 'pear', 'plum']

이를 키가 아닌 값(value)를 기준으로 정렬하려면, sorted의 key 매개 변수에 lambda 함수를 사용하여 value 값을 기준으로 정렬하라고 하면 됩니다.

sorted(fruits, key=lambda k : fruits[k])

['melon', 'plum', 'banana', 'pear', 'apple']


✔ 한 일 점검

  • 백준 or 프로그래머스 - 1문제 이상⭕
  • 스프링 - 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 끝내기❌
  • 파이썬 - 이코테 강의2❌
  • 빅데시 발표 대본 작성❌

✔ 내일 목표


✔ 주저리

  • 상품 도메인 개발 부터 시작
  • 이코테 빠르게 마스터
  • 졸작 개발도 슬슬..
  • 이 문제 람다, 사전 자료형, 튜플 마스터하기 정말 좋은 문제!
profile
기죽지 않는 개발자

0개의 댓글