11. 문자열 내 마음대로 정렬하기

2020. 9. 10. 19:07·알고리즘_코딩테스트/프로그래머스_Level1

0. 문제

링크) https://programmers.co.kr/learn/courses/30/lessons/12915

 

코딩테스트 연습 - 문자열 내 마음대로 정렬하기

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

programmers.co.kr


1. 알고리즘 계획

  1. 처음 들어오는 값을 정렬해준다.
  2. '삽입정렬'을 이용해서 배열을 한다.


2. 나의 코드

def solution2(strs, n):
    strs.sort()
    for i in range(1, len(strs)):
        j = i-1
        while (j >= 0 and strs[j][n] > strs[i][n]): # strs[j]가 더 낮으면 while문 아웃
            j -= 1
        strs.insert(j+1, strs[i])
        del strs[i+1]
    return strs


3. 다른 사람의 코드

def solution(strings, n):
    return sorted(sorted(strings), key=lambda x: x[n])

- sorted함수를 사용한 풀이

- sorted함수는 뒤에 key = lambda를 이용해서 정렬할 수 있다.

from operator import itemgetter

def solution2(strings, n):
    return sorted(sorted(strings), key=itemgetter(n))

- Itemgetter: Item의 배열 n번째를 기준으로 정렬함을 의미한다. 

- 위의 코드와 유사하다. 함수를 lambda로 주느냐, itemgetter함수를 이용하느냐에 차이


4. 정리 및 리뷰

- 알고리즘에서 배웠던 정렬방법을 사용해서 풀어보고자 해서, '삽입정렬'을 이용해 풀었다.

- 하지만 파이썬의 경우 간결함이 가장 큰 장점이라고 생각한다. 그런 의미에서 위의 sorted함수의 사용 방법을 알았다면 어렵지 않게 풀 수 있었을 것 같다.


코드 만족도: ★★★☆☆


'알고리즘_코딩테스트 > 프로그래머스_Level1' 카테고리의 다른 글

13. 문자열 내림차순으로 배치하기  (0) 2020.09.10
12. 문자열 내 p와 y의 개수  (0) 2020.09.10
10. 두 정수 사이의 합  (0) 2020.09.09
9. 나누어 떨어지는 숫자 배열  (0) 2020.09.09
8. 같은 숫자는 싫어  (0) 2020.09.09
'알고리즘_코딩테스트/프로그래머스_Level1' 카테고리의 다른 글
  • 13. 문자열 내림차순으로 배치하기
  • 12. 문자열 내 p와 y의 개수
  • 10. 두 정수 사이의 합
  • 9. 나누어 떨어지는 숫자 배열
논곰
논곰
현재 2년 유목하고, 3년 이상 리테일 쪽에서 머신러닝 엔지니어로 잠시 정착 중인 AI 엔지니어입니다.
  • 논곰
    에이아이 유목민
    논곰
  • 전체
    오늘
    어제
    • 분류 전체보기 (200)
      • 기술 견문록 (22)
        • MLOps (8)
        • ProductServing (5)
        • 협업 툴 (3)
        • Error Collecting (2)
        • 컨퍼런스 (1)
        • 자격증 (1)
      • IT 견문록 (10)
        • 추가 학습 정리 (10)
      • 알고리즘_코딩테스트 (162)
        • 프로그래머스_Level1 (40)
        • 백준코딩테스트_단계별문제풀이 (14)
        • 이것이 코딩테스트다 (63)
        • 2021_알고리즘 스터디 (30일) (28)
        • 주간코딩 스터디 (주코스) (17)
      • 독서 견문록 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Level1
    그리디
    백트랙킹
    최단경로
    파이썬 3
    부스트캠프_AITech_3기
    dfs
    단계별문제풀이
    dp
    이코테
    알고리즘_스터디
    알고리즘스터디
    부스트캠프_AITech3기
    그래프이론
    U_stage
    주간회고
    python3
    글또
    mrc
    ODQA
    구현
    프로그래머스
    정렬
    MLFlow
    이진탐색
    백준
    기술면접
    Level2
    Level2_PStage
    다시보기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
논곰
11. 문자열 내 마음대로 정렬하기
상단으로

티스토리툴바