본문 바로가기

Wook's 개척일기234

[Java] Comperator 와 Comperable 자바에서는 배열이나 리스트의 정렬을 위해서 Comperator와 Comparable 인터페이스를 제공한다. 두 인터페이스는 모두 정렬을 하기 위해서 사용한다는것은 동일하다. 하지만 둘의 차이점은 아래와 같다. Comparable 1. 기본 정렬 기준을 구현하는데 사용 2. 반드시 compareTo() 메소드를 정의해야 한다. Comperator 1. 기본 정렬 기준 말고 다른 기준으로 정렬하고자 할때 사용 2. compare()메소드를 구현해야한다. 그럼 각각의 인터페이스에 대해서 자세히 알아보자. Comperable 정렬 수행시 기본적으로 젹용되는 정렬기준이 되는 메소드를 정의하는 인터페이스이다. Integer,Double 클래스 : 오름차순 정렬 String 클래스 : 사전순 정렬 구현 방법 정렬할 .. 2021. 6. 3.
[프로그래머스 : 레벨1] K번째 수 : 선택정렬(Java) 이번 문제는 라이브러리를 활용하여서 문제를 풀었는데 이번엔 문제가 좀 쉬워서 라이브러리를 사용하지 않고도 문제를 풀어봤다. 레벨 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입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연.. 2021. 6. 2.
[Java] 배열 복사 하는 방법 ( clone(), copyOf(), copyOfRange() ) 이번에 내가 배운것은 copyOfRange()라는 메소드이다. 해당 메소드는 우리가 어떤 배열을 특정 index부터 우리가 원하는 숫자만큼 해당 배열을 복사해오는 것이다. 우리가 흔히 어떤 값을 복사 해올때는 아래와 같이 해왔다. int num1 = 0; int num2 = num1; 아래와 같이 하고 num2를 다른 수로 바꿔주고 출력을 하게 됐을때 결과는 아래와 같다. num2 = 5; System.out.println(num1); System.out.println(num2); 결과 0 5 이처럼 되는 이유는 값을 복사한것이기 때문에 num1과 num2의 값은 별개가 되는것이다. 하지만 배열에서는 위와 같은 방식으로 하면 안된다. 배열에서는 위와 같은 방식으로 복사하는 방법은 얕은 복사라고 하는데 그.. 2021. 6. 2.
[프로그래머스 : 레벨 3] 이중 우선순위 큐 : PriorityQueue (Java) 이번 문제는 다행히도 답지를 보지 않았다. 내가 한 문제가 효율이 좋은지는 잘 모르겠지만 어찌됐건 성공이긴 하다. 다른 사람들의 코드를 보고 괜찮은게 있는지 보려고 했지만 나랑 별반 다를게 없었다. 일단 문제 부터 보자. 문제 설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어 수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요.제한사항 operations는 길이가 1 이상 1,000,0.. 2021. 5. 30.