Programmers > #15 K번째수 [JAVA]

2020.02.27 21:22

졸리운_곰 조회 수:91

 

Programmers > #15 K번째수 [JAVA]

 

K번째 

 

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

 

 

 

1. 문제설명

 

배열 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입니다.

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

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

 

 

2. 나의 코드

 

 

Arrays.copyOfRange를 사용하여 array 슬라이싱을 하였다.

각 commends 배열의 요소를 for문을 사용하여, 적절하게 뽑아냈다.

import java.util.*;

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

 

 

3. 다른 사람 코드

 

 

- Arrays.copyOfRange 사용없이, array슬라이싱

for(int i = 0 ; i < commands.length ; i++)
        {
            int start = commands[i][0];
            int end = commands[i][1];
            int k = commands[i][2];

            int[] tmp = new int[end - start + 1];

            int a = 0;
            for(int j = start - 1 ; j < end ; j++)
                tmp[a++] = array[j];

            Arrays.sort(tmp);
            answer[index++] = tmp[k-1];
        }

 

[출처] https://dreamhollic.tistory.com/entry/Programmers-13-K%EB%B2%88%EC%A7%B8%EC%88%98-JAVA?category=676734

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
898 [Programmers] #19 문자열을 정수로 바꾸기 [Python] 졸리운_곰 2020.03.06 96
897 [Programmers] #18 문자열 내 p와 y의 개수 [Python] 졸리운_곰 2020.03.06 74
896 [Programmers] #17 더 맵게 [JAVA] 졸리운_곰 2020.03.03 79
895 [Programmers] #16 가장 큰 수 [JAVA] 졸리운_곰 2020.03.03 93
» Programmers > #15 K번째수 [JAVA] 졸리운_곰 2020.02.27 91
893 [Programmers] #14 다리를 지나는 트럭 [JAVA] 졸리운_곰 2020.02.27 60
892 [Programmers] #13 시저암호 [Python] 졸리운_곰 2020.02.27 68
891 [Programmers] #12 완주하지 못한 선수 [Python] 졸리운_곰 2020.02.27 81
890 [Programmers] #11 프린터[JAVA] 졸리운_곰 2020.02.26 71
889 [Programmers] #10 전화번호 목록 [JAVA] 졸리운_곰 2020.02.26 82
888 [Programmers] #9 큰수 만들기[JAVA] 졸리운_곰 2020.02.26 64
887 [Programmers] #8 가운데 글자 가져오기 [Python] 졸리운_곰 2020.02.25 79
886 [Programmers] #7 체육복 [JAVA] 졸리운_곰 2020.02.25 57
885 [Programmers] #6 모의고사[JAVA] 졸리운_곰 2020.02.25 69
884 [알고리즘 문제 풀이]#5 완주하지 못한 선수 [JAVA] 졸리운_곰 2020.02.22 74
883 [알고리즘 문제풀이] #4 탑[JAVA] 졸리운_곰 2020.02.22 68
882 [알고리즘 문제풀이]#3 최댓값과 최솟값 [JAVA] 졸리운_곰 2020.02.22 67
881 [알고리즘 문제풀이] #2 숫자의 표현 [JAVA] 졸리운_곰 2020.02.22 94
880 [알고리즘 문제풀이] #1 K번째수[Python3] 졸리운_곰 2020.02.22 84
879 최고 자바스크립트 머신러닝 라이브러리 리스트 : Top Javascript Machine Learning libraries in 2019 file 졸리운_곰 2020.02.11 240
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED