[프로그래머스_1] K번째수 JAVA

2022. 6. 14. 00:48·알고리즘/알고리즘 풀이
반응형

 

 

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

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

programmers.co.kr

 

문제 설명

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

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

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

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

 

제한 사항

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

 

반응형

 

CODE

import java.util.*;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];
        
        int[] tempArr;
        int startIdx = -1;
        int endIdx = -1;
        int choiceIdx = -1;
        for(int i = 0; i < commands.length; i++) {
            startIdx = commands[i][0]-1;
            endIdx = commands[i][1];
            choiceIdx = commands[i][2]-1;
            
            tempArr = Arrays.copyOfRange(array, startIdx, endIdx);
    
            Arrays.sort(tempArr);
            
            answer[i] = tempArr[choiceIdx];
            
        }
        return answer;
    }
}

일단 원본 배열을 자른 배열을 저장할 tempArr을 선언했다. 그리고 commads의 각 i, j, k의 값들 중 i와 k는 배열의 인덱스 숫자가 아닌 사람이 일반적으로 세는 숫자 1부터 시작해서 -1을 해주었고, j 값의 경우에는 copyOfRange 중 마지막 인덱스 값의 전까지 자르기 때문에 값을 그대로 두었다. 

 

 

 

실행 결과

반응형
저작자표시 비영리 변경금지 (새창열림)
'알고리즘/알고리즘 풀이' 카테고리의 다른 글
  • [프로그래머스_1] 두 정수 사이의 합 JAVA
  • [프로그래머스_1] 나머지가 1이 되는 수 찾기 JAVA
  • [프로그래머스_1] 음양 더하기 JAVA
  • [프로그래머스_1] x만큼 간격이 있는 n개의 숫자 JAVA
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    oracle
    프로그래머스
    IT
    알고리즘
    SQL
    Java
    SpringBoot를 이용한 RESTful Web Service 개발
    springboot
    토비의스프링부트
    자바스크립트
    백준
    Spring
    넥사크로
    RESTful
    react
    egov
    프론트엔드
    스프링부트
    에러해결
    MSA
    전자정부프레임워크
    토이프로젝트
    JPA
    인프런
    코딩테스트
    개발자
    기출문제
    운영체제
    방통대
    QueryDSL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
[프로그래머스_1] K번째수 JAVA
상단으로

티스토리툴바