[프로그래머스] 42748 K번째수(Level.1) - 정렬

2024. 7. 5. 20:06·코딩 테스트/자료구조

문제

코드

시도 1 - O

commands[][]의 행을 돌며 i ~ j 인덱스의 값들을 새로운 배열에 복사한 뒤 k번째 값을 result[] 배열에 삽입하여 반환한다.

/** 문제 설명
배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수 구하기
*/

import java.util.*;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] result = new int[commands.length];

        int s = 0;
        for (int[] command : commands) {
            int i = command[0];
            int j = command[1];
            int k = command[2];

            ArrayList<Integer> al = new ArrayList<>();
            for (int index = i-1; index < j; index++) {
                al.add(array[index]);
            }
            al.sort(null); // 2 3 5 6
            result[s++] = al.get(k-1); // 5
        }
        return result;
    }
}

 

시도 1 코드 개선 - O

Arrays 클래스에 copyOfRange() 메서드를 사용한 코드이다.
코드 가독성은 더 좋아졌지만 시간이 더 오래 걸리는 단점이 있다.

  • Arrays.copyOfRange(원본 배열, 시작 인덱스,끝 인덱스)
    원본 배열의 시작 인덱스 ~ 끝 인덱스의 값을 새로운 배열에 복사하여 새로운 배열을 반환해주는 메소드이다.
import java.util.*;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] result = new int[commands.length];

        int s = 0;
        for (int[] command : commands) {
            int i = command[0];
            int j = command[1];
            int k = command[2];

            ArrayList<Integer> al = new ArrayList<>();

            int[] temp = Arrays.copyOfRange(array, i-1, j);
            Arrays.sort(temp);
            result[s++] = temp[k-1];
        }
        return result;
    }
}

 

'코딩 테스트 > 자료구조' 카테고리의 다른 글

[프로그래머스] 42746 가장 큰 수(Lv.2) - 정렬  (0) 2024.07.05
[백준] 9372 상근이의 여행(실버4) - 그래프  (0) 2024.07.05
[프로그래머스] 49189 가장 먼 노드(Level3) - 그래프, BFS  (0) 2024.07.05
[백준] 2178 미로 탐색(실버1) - 그래프  (0) 2024.07.04
[백준] 2606 바이러스(실버3) - 그래프(DFS)  (0) 2024.07.03
'코딩 테스트/자료구조' 카테고리의 다른 글
  • [프로그래머스] 42746 가장 큰 수(Lv.2) - 정렬
  • [백준] 9372 상근이의 여행(실버4) - 그래프
  • [프로그래머스] 49189 가장 먼 노드(Level3) - 그래프, BFS
  • [백준] 2178 미로 탐색(실버1) - 그래프
토자맨
토자맨
  • 토자맨
    개발하는 토자맨
    토자맨
  • 전체
    오늘
    어제
    • 개발 공부
      • 코딩 테스트
        • 코드업 기초 100제
        • 백준
        • 99클럽
        • 자료구조
        • 알고리즘
      • Programming Language
        • 자바(JAVA)
      • Back-end
        • Spring
      • Front-end
        • html
        • css
      • DevOps
        • AWS
        • CI CD
        • Docker
        • 홈서버
        • Git
      • Computer Science
        • 자료구조
        • 알고리즘
        • 운영체제
        • OS,Network,DB,DesignPattern
      • 프로젝트
        • 웨이트 쇼핑몰
      • 공부 로드맵
        • 2학년 겨울방학
        • 3학년 2학기
        • 3학년 겨울방학
      • 일상
        • 기타 정보
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    백준 #dp #동적계획법
    git filter-repo
    백준 #이진탐색 #이분탐색
    스프링 #spring #스프링 컨테이너 #스프링 컨텍스트
    bfs #프로그래머스
    solid #객체지향설계원칙
    피보나치 수 #백준 #dp
    백준 #dfs
    이진탐색 #이분탐색 #알고리즘
    백준 #dfs #알고리즘
    nvidia container toolkit #
    스프링핵심원리 #김영한 #의존관계자동주입 #의존관계 자동 주입
    백준 #bfs
    dfs #알고리즘
    bfs #백준
    nvidia-docker #docker cuda #docker gpu #엔비디아 도커
    bfs #최단거리탐색 #프로그래머스
    티스토리챌린지
    프로그래머스 #dfs
    프로그래머스 #dp
    오블완
    이진탐색 #이분탐색 #백준
    싱글톤 패턴 #싱글톤 컨테이너 #싱글톤 레지스트리 #싱글톤 객체 상태 #무상태 #stateless #유지상태 #staleful
    99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #til
    백준 #dfs #11725번
    백준 #아기상어2 #bfs
    git filter-branch #commit 수정 #commit
    ec2 멈춤 #ec2 터짐 #ec2 ssh 연결 끊김 #ec2 끊김
    dfs #백준
    dp #백준 #동적계획법
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
토자맨
[프로그래머스] 42748 K번째수(Level.1) - 정렬
상단으로

티스토리툴바