[프로그래머스] K번째수 JAVA 풀이 (알고리즘, 시간복잡도)

2026. 5. 28. 12:52·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

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


📌 문제 개요

배열의 특정 구간을 잘라낸 뒤 정렬하고,
그 중 k번째 숫자를 구하는 문제

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

2~5까지 자르기
→ [5, 2, 6, 3]

정렬
→ [2, 3, 5, 6]

3번째 숫자
→ 5

commands에 있는 모든 명령을 수행한 결과를 배열로 반환하면 됩니다.


📌 접근 방법

각 command마다 순서로 처리

  1. 시작 인덱스와 끝 인덱스 구하기
  2. 배열 자르기
  3. 정렬하기
  4. k번째 값 저장하기

배열 자르기는 Arrays.copyOfRange()를 사용하면 쉽게 해결할 수 있습니다.


📌 핵심 아이디어

Arrays.copyOfRange()

Arrays.copyOfRange(array, start, end)
  • start 포함
  • end 미포함
Arrays.copyOfRange(array, 1, 5)
1 ~ 4 인덱스까지 복사

 

문제는 1번부터 시작하는 인덱스이므로 처리가 필요

start = i - 1

📌 전체 코드

import java.util.Arrays;

class Solution {
    public int[] solution(int[] array, int[][] commands) {

        int[] answer = new int[commands.length];

        for (int i = 0; i < commands.length; i++) {

            int start = commands[i][0] - 1;
            int end = commands[i][1];
            int k = commands[i][2] - 1;

            int[] temp = Arrays.copyOfRange(array, start, end);

            Arrays.sort(temp);

            answer[i] = temp[k];
        }

        return answer;
    }
}

📄 정리

  • 배열 자르기는 Arrays.copyOfRange()
  • 정렬은 Arrays.sort()
  • 문제 인덱스는 1-based
  • copyOfRange의 끝 인덱스는 포함되지 않음
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

카드 뭉치 JAVA 풀이 (구현, 문자열)  (0) 2026.06.03
프로그래머스 숫자 문자열과 영단어 JAVA 풀이 (문자열, replace)  (0) 2026.06.02
프로그래머스 푸드 파이트 대회 JAVA 풀이  (0) 2026.05.27
프로그래머스 두 개 뽑아서 더하기 (JAVA)  (0) 2026.05.26
프로그래머스 시저 암호 JAVA (문자열, 구현, 아스키코드)  (0) 2026.05.25
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • 카드 뭉치 JAVA 풀이 (구현, 문자열)
  • 프로그래머스 숫자 문자열과 영단어 JAVA 풀이 (문자열, replace)
  • 프로그래머스 푸드 파이트 대회 JAVA 풀이
  • 프로그래머스 두 개 뽑아서 더하기 (JAVA)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

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

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    브루트포스
    자료구조
    실기
    정처기
    정처기실기
    기출문제
    완전탐색
    springboot
    정처기오답노트
    백엔드개발자
    구현
    level1
    시뮬레이션
    dp
    문자열
    정보처리기사 실기 기출문제
    level0
    코딩테스트
    java
    정렬
    Level2
    수학
    프로그래머스
    백준
    피보나치
    solved.ac
    배열
    알고리즘
    정보처리기사
    자바
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
[프로그래머스] K번째수 JAVA 풀이 (알고리즘, 시간복잡도)
상단으로

티스토리툴바