Tany
백문이불어일Tany
Tany
전체 방문자
오늘
어제
  • 분류 전체보기 (197)
    • JAVA TPC (1)
    • JAVA (10)
    • CS (3)
    • SPRING (5)
    • DFS BFS (12)
    • SQL (7)
    • 알고리즘 정리 (76)
    • Git, Github (3)
    • 학습 계획 (36)
    • 코드스쿼드 학습일지 (19)
    • Servlet (5)
    • VPC (2)
    • AWS (4)
    • JPA (5)
    • 취미생활 (2)
    • 프로젝트 기록 (7)
      • Issue Tracker 삽질 기록 (5)
      • 당근마켓 API 서버 기록 (2)
      • 나만의 블로그 제작 기록 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 프로그래머스
  • 이분탐색
  • MVC
  • EC2
  • 인프런
  • 완전탐색
  • 주간 학습 계획
  • 재귀
  • 정렬
  • sql
  • 해시
  • 자료구조
  • GIT
  • JPA
  • 이코테
  • 문자열
  • hash
  • java
  • 면접을 위한 CS 전공지식 노트
  • 알고리즘
  • 백준
  • 자바
  • Stack
  • AWS
  • github
  • JSP
  • MySQL
  • dfs
  • 파이썬
  • BFS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Tany

백문이불어일Tany

파이썬(Python) 알고리즘 문제풀이 문자열 내 마음대로 정렬하기 [프로그래머스 / 정렬]
알고리즘 정리

파이썬(Python) 알고리즘 문제풀이 문자열 내 마음대로 정렬하기 [프로그래머스 / 정렬]

2023. 6. 5. 14:04

출처) 프로그래머스 Facebook

문제 설명

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.

 

 

제한사항

strings는 길이 1 이상, 50이하인 배열입니다.
strings의 원소는 소문자 알파벳으로 이루어져 있습니다.
strings의 원소는 길이 1 이상, 100이하인 문자열입니다.
모든 strings의 원소의 길이는 n보다 큽니다.
인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.

 

 

입출력 예시

strings n return
["sun", "bed", "car ] 3 ["car", "bed", "sun"]
["abce", "abcd", "cdx" ] 2 ["abcd", "abce", "cdx"]

 

 

입출력 예시 설명

# 입출력 예 1
"sun", "bed", "car"의 1번째 인덱스 값은 각각 "u", "e", "a" 입니다. 이를 기준으로 strings를 정렬하면 ["car", "bed", "sun"] 입니다.

 

# 입출력 예 2
"abce"와 "abcd", "cdx"의 2번째 인덱스 값은 "c", "c", "x"입니다. 따라서 정렬 후에는 "cdx"가 가장 뒤에 위치합니다. "abce"와 "abcd"는 사전순으로 정렬하면 "abcd"가 우선하므로, 답은 ["abcd", "abce", "cdx"] 입니다.

 

 

풀이 코드

정렬 기준을 정해서 정렬할 수 있는지 확인하는 문제. lambda 를 잘 사용하면 여러가지 방법으로 문제를 풀 수 있다.

tuple 활용법은 몰랐었는데, 여러가지 기준을 순서대로 정렬하고 싶을 때 tuple 로 기준을 정해줄 수 있다.

def solution(strings, n):    
    # 첫 번째 방법) 문자열을 미리 정렬하고 n 기준으로 정렬하기
    answer = sorted(sorted(strings), key=lambda x: x[n])
    
    # 두 번째 방법) tuple 활용
    answer = sorted(strings, key=lambda x: (x[n], x))
    
    return answer

'알고리즘 정리' 카테고리의 다른 글

파이썬(Python) 알고리즘 문제풀이 입국 심사[프로그래머스 / 이분탐색]  (1) 2023.06.06
파이썬(Python) 알고리즘 문제풀이 가장 큰 수[프로그래머스 / 정렬]  (0) 2023.06.05
파이썬(Python) 알고리즘 문제풀이 H-Index [프로그래머스 / 정렬]  (0) 2023.06.05
파이썬(Python) 알고리즘 문제풀이 두 개 뽑아서 더하기 [프로그래머스 / 정렬]  (0) 2023.06.05
파이썬(Python) 알고리즘 문제풀이 수식 최대화 [프로그래머스 / 완전탐색]  (1) 2023.06.02
    '알고리즘 정리' 카테고리의 다른 글
    • 파이썬(Python) 알고리즘 문제풀이 입국 심사[프로그래머스 / 이분탐색]
    • 파이썬(Python) 알고리즘 문제풀이 가장 큰 수[프로그래머스 / 정렬]
    • 파이썬(Python) 알고리즘 문제풀이 H-Index [프로그래머스 / 정렬]
    • 파이썬(Python) 알고리즘 문제풀이 두 개 뽑아서 더하기 [프로그래머스 / 정렬]
    Tany
    Tany
    내가 보려고 만드는 백엔드 기록장 Github https://github.com/juni8453

    티스토리툴바