목록비교 (3)
개발 무지렁이

전화번호 목록 🪅 String의 내장 메서드 startsWith()를 알고 있느냐 🪅 String배열을 Arrays.sort()했을때 어떤 식으로 정렬되는지 알고 있느냐 => 첫번째 문자를 기준으로 정렬된다 🪅 for문을 한번만 쓰고도 문제를 해결할 수 있느냐(효율성 테스트) 💡 문제 접근 과정 phone_book배열 중에 어떤 원소가 prefix가 될지는 입출력 예마다 다르다. 때문에 prefix가 될 원소를 for문을 통해 하나씩 대입해보고 isContain 메서드에서 prefix를 제외한 나머지 원소들과 접두사를 비교해봄으로써(startsWith()) for문을 두번 돌렸더니 효율성 테스트를 통과하지 못했다. 결국 for문을 한 번 돌리면서 문제를 해결해야했는데 이를 위해 문자열 정렬이 필요했다. ..

인터페이스인 Comparable Comparable에는 compareTo(T o) 메서드가 선언되어 있다. 이 메서드는 '자기자신'과 '매개변수 객체'를 비교한다. ❓ 인터페이스 : 추상성 100%인 클래스를 말한다. (단, 인터페이스 내에 선언된 메서드를 반드시 구현해야한다.) compareTo는 int를 반환한다 - '양수'를 반환: 자기자신이 매개변수 객체보다 크다 - '0'을 반환: 자기자신이 매개변수 객체와 같다 - '음수'를 반환: 자기자신이 매개변수 객체보다 작다Comparable 활용 예제 🎯 우선순위 큐에서 Node클래스의 compareTo을 기준으로 삼아 자동정렬한다. PriorityQueue pq = new PriorityQueue(); cl..

버블(Bubble) 정렬 이웃한 값을 비교해서 더 작은값을 앞으로 보내자 (한번 돌면 가장 큰값이 가장 뒤로 오게 된다, 뒤부터 정렬) 🕑 시간복잡도: O(N^2) [비교연산 횟수: N-1 + N-2 + N-3 + ... + 1 = (N^2)/2번] 버블(Bubble) 정렬 코드 구현 1. 루프loop를 돌면서 이웃한 값 간의 swap연산으로 정렬한다. 🎯 N이 1000보다 작음으로 시간복잡도가 O(N^2)인 알고리즘을 써도 풀 수 있다. (1억번의 연산 = 1초) import java.util.*; class Main { public static void main(String[] args) { Scanner scannner = new Scanner(System.in); int N = scanner.ne..