[프로그래머스 / Level 1] K번째수 (파이썬)

2022. 4. 5. 20:46·🎲 알고리즘 공부/프로그래머스
목차
  1. 📝 문제
  2. https://programmers.co.kr/learn/courses/30/lessons/42748
  3. 🎨 풀이
  4. ⭐ 느낀점

📝 문제

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

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

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

 

제한사항과 입출력 예시


🎨 풀이

💡 첫번째 시도 = 성공 

 

def solution(array, commands):
    answer = []
    slice_array = []
    for i in range(0, len(commands)):
        a = commands[i][0] - 1
        b = commands[i][1]
        c = commands[i][2] - 1

        slice_array = array[a:b]
        slice_array.sort()
        answer.append(slice_array[c])
        
    return answer

 

> 문제 그대로 코드를 작성해봤다.

1. 먼저, i, j, k가 리스트 단위로 주어지니까 그걸 각각 a, b, c에 담았다.

  - b만 -1을 안한 이유는 배열이 0부터 시작하는 것과 관련이 있다.

  - 배열은 0번째부터 수가 담긴다. 이 글에서 i에 2가 주어진다면 2번째 숫자, 즉 1번째에 있는 수를 말하는      것이다. 그래서 a와 c는 배열의 특성상 -1을 해준 것이다.

  - b는 슬라이스 할 때 n번째 까지면 n번째 수는 포함이 되지 않기 때문에 -1을 따로 해주면 안된다. 

 

슬라이스 예시

a = [0,1,2,3,4,5,6,7]
a = [0:4]				 // 인덱스 0부터 3까지 잘라서 새로운 리스트를 만듦.
> a = [0,1,2,3]			 // 결과

 

2. a, b, c에 잘 나눠담은 후 a부터 b까지 수를 잘라 slice_array에 넣는다.

3. slice_array를 sort를 이용해 정렬한다.

4. slice_array[c]를, 즉 정렬한 리스트에서 k번째 수를 answer에 추가한다.

 

끝이다~

 

⭐ 느낀점

 

> 슬라이스가 왜 이렇게 어려운 지 모르겠다~!! 아니 자꾸 헷갈린다 ㅠㅠ 알똥말똥하다. 계속 틀리고 맞고를 반복하다보면 언젠가 습득이 될 것 같기도 하다. 이 문제는 sort 정렬이 없었으면 좀 어려웠을 것 같다. sort 정렬 없이 직접 정렬해야하는 것도 문제에 나오고 그러나? 모르겠네 허허. ㅎㅎ. 좀 알아보고 그래야겠다.  

'🎲 알고리즘 공부 > 프로그래머스' 카테고리의 다른 글

[프로그래머스 / Level 1] 폰켓몬 (파이썬)  (0) 2022.04.07
[프로그래머스 / Level 1] 체육복 (파이썬)  (0) 2022.04.06
[프로그래머스 / Level 1] 완주하지 못한 선수 (파이썬)  (0) 2022.04.04
[프로그래머스 / Level 1] 내적 (파이썬)  (0) 2022.04.03
[프로그래머스 / Level 1] 음양 더하기 (파이썬)  (0) 2022.04.02
  1. 📝 문제
  2. https://programmers.co.kr/learn/courses/30/lessons/42748
  3. 🎨 풀이
  4. ⭐ 느낀점
'🎲 알고리즘 공부/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 / Level 1] 폰켓몬 (파이썬)
  • [프로그래머스 / Level 1] 체육복 (파이썬)
  • [프로그래머스 / Level 1] 완주하지 못한 선수 (파이썬)
  • [프로그래머스 / Level 1] 내적 (파이썬)
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (280)
      • 📑 신입일기 (35)
      • 🍪 Web (1)
        • angular (1)
        • JavaScript (0)
      • 🧩 Node.js 공부 (2)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 🎨 Tistory Customizing (1)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 📗 spring boot 공부 (9)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    카카오
    til
    연습문제
    BOJ
    6월 목표
    백준
    nodejs
    컨텐더스
    50문답
    피보나치수
    스프링 부트
    파이썬
    코민이
    오버워치
    티스토리챌린지
    codeup
    스프링부트
    정처기
    코린이
    행렬덧셈
    코드업
    오블완
    정보처리기사
    폰켓몬
    찬양추천
    코테
    일기
    신입일기
    충무로
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[프로그래머스 / Level 1] K번째수 (파이썬)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.