몽-구
몽구의 우당탕탕 개발 공부
몽-구
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • PS (38)
      • 백준 (24)
      • 프로그래머스 (14)
    • Dev (58)
      • Kotlin (0)
      • Java (4)
      • Spring, SpringBoot (1)
      • C (8)
      • Python (10)
      • Dart (1)
      • 알고리즘 (7)
      • 자료구조 (3)
      • Git (1)
      • Linux (2)
      • VS Code (1)
      • 환경 설정 (8)
      • Conference (1)
      • 42Seoul (3)
      • Node.js (1)
      • ShellScript (1)
      • IntelliJ (0)
      • MacOS (2)
      • 기타 (3)
    • CS (1)
      • 데이터베이스 (1)
    • DS (4)
      • Coursera (4)
    • 리뷰 (1)
      • 제품 리뷰 (1)
    • 일상 (3)
      • 자동화 (1)
      • 목표 및 계획 (2)
      • 회고 (0)
    • 삶에 대한 태도 (1)
      • 유튜브를 보며 (1)

블로그 메뉴

  • GitHub

인기 글

반응형

태그

  • 백준온라인저지
  • Linux
  • Algorithm
  • 백준알고리즘
  • 리눅스
  • sort
  • 정렬
  • 파이썬
  • 백준
  • 코딩테스트
  • 프로그래머스
  • c언어
  • 알고리즘
  • Python
  • BOJ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
몽-구

몽구의 우당탕탕 개발 공부

[프로그래머스][파이썬/Python] K번째수
PS/프로그래머스

[프로그래머스][파이썬/Python] K번째수

2020. 2. 17. 15:30
반응형

문제 설명

배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.

예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면,

  • array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.
  • 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.
  • 2에서 나온 배열의 3번째 숫자는 5입니다.

배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요.

 

제한사항

  • array의 길이는 1 이상 100 이하입니다.
  • array의 각 원소는 1 이상 100 이하입니다.
  • commands의 길이는 1 이상 50 이하입니다.
  • commands의 각 원소는 길이가 3입니다.

 

입출력 예

 

풀이 과정

1. 최종 제출 코드와 테스트 결과 (통과)

def solution(array, commands):
    answer = []
    for i in range(0, len(commands)):
        tmp = array[(commands[i][0])-1:(commands[i][1])]
        tmp.sort()
        answer.append(tmp[(commands[i][2])-1])
    return answer

문제 읽는 것과 코드 짜는 것 합쳐서 10분 정도 소요된 것 같다. 이전 문제들에 비해 난이도가 많이 쉬웠다. 이 문제의 핵심은 아래와 같다고 생각한다.

 

  1. 문자열 슬라이싱을 할 때, 원소가 어디서부터 어디까지 슬라이싱되는지 알고 있는가?
  2. '현실 속 k번째' = '리스트에서 k-1번째 원소' 라는 것을 간과하지는 않았는가?

그 외에는 정말 딱히 고려할 부분이 없었다고 생각한다. 하지만 역시나 통과한 다른 코드들을 보면 현자타임이 강렬하게 온다. 좋아요를 많이 받은 코드들을 보면 lambda가 정말 많이 쓰이는 것 같다. 난 7줄이나 짰는데, lambda를 쓰니 2줄 만에 끝난 핵고수가 계셨다. 비단 이 문제 뿐만이 아니고 lambda를 쓰면 아주 간결하고 손쉽게 문제를 해결하는 경향이 있는 것 같다. python을 python답지 못하게 쓰고 있는 느낌이 든다. 나도 어서 람다람다람다람쥐를 공부해봐야겠당.

 

 

 

Source : https://programmers.co.kr/learn/courses/30/lessons/42748

반응형

'PS > 프로그래머스' 카테고리의 다른 글

[프로그래머스][파이썬/Python] x만큼 간격이 있는 n개의 숫자  (0) 2020.02.19
[프로그래머스][파이썬/Python] 문자열을 정수로 바꾸기  (0) 2020.02.18
[프로그래머스][파이썬/Python] 두 정수 사이의 합  (0) 2020.02.18
[프로그래머스][파이썬/Python] 체육복  (0) 2020.02.16
[프로그래머스][파이썬/Python] 완주하지 못한 선수  (0) 2020.02.15
    'PS/프로그래머스' 카테고리의 다른 글
    • [프로그래머스][파이썬/Python] 문자열을 정수로 바꾸기
    • [프로그래머스][파이썬/Python] 두 정수 사이의 합
    • [프로그래머스][파이썬/Python] 체육복
    • [프로그래머스][파이썬/Python] 완주하지 못한 선수
    몽-구
    몽-구
    소망보단 목표를, 생각보단 실천을

    티스토리툴바