본문 바로가기

Java13

[백준]1018_체스판 다시 칠하기_Java 풀이 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 4중 for문을 돌며... 맨 위 왼쪽이 B로 시작하는지, W로 시작하는지 두가지 상황으로 나누어서 각각의 경우에 다른 값이 있는 개수를 각각 저장한다. -> 최소값을 비교 왼쪽 위가 B로 시작하는 경우 BWBWBWBW WBWBWBWB BWBWBWBW WBWBWBWB 와 같은 형태 왼쪽 위가 W로 시작하는 경우 WBWBWBWB BWBWBWBW WBWBWBWB BWBWBWBW 와 같은 형태 .. 2023. 1. 24.
[Java] 자바 배열 복사하기 1. 얕은 복사 & 깊은 복사 얕은 복사 arr2의 값을 수정하면 arr1에 영향 배열의 참조(주솟값)만 복사한 것으로 arr1, arr2 모두 하나의 참조를 가리킴 int arr1[] = {1, 2, 3, 4, 5}; int arr2[] = arr1; 깊은 복사 배열을 그대로 가져와 새로운 배열을 만들어, 각각 수정해도 영향 없음 2. Object.clone() 자바의 모든 부모 클래스인 Object 클래스에 구현되어있는 clone()메서드 사용 int arr1[] = {1, 2, 3, 4, 5}; int arr2[] = arr1.clone(); 3. System.arraycopy() System.arraycopy(원본 배열, 복사시작위치, 복사할 배열, 붙여넣기 시작위치, 복사할 길이); int ar.. 2023. 1. 12.
[백준]2751_수 정렬하기2_Java풀이(Collections.sort, Counting Sort) https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 최대 1,000,000 의 수를 정렬해야함 자바 내장 정렬 라이브러리 Arrays.sort - 시간복잡도 : 평균 $O(nlogn)$ / 최악 $O(n^2)$ → 시간 초과 자바 내장 정렬 라이브러리 Collections.sort - 시간복잡도 : 평균,최악 $O(nlogn)$→ 통과 계수 정렬 Counting sort - 시간복잡도 : $O(N+K)$ (N: 데이터의 개수, K:.. 2023. 1. 10.
[Java]Comparable / Comparator 인터페이스 특징과 차이 정리 Comparable 인터페이스 - 원소 자신과 상대 비교 int CompareTo(T other) 오버라이딩 해야함 ( 매개 변수로 받는 타원소와 비교) Comparator 인터페이스 - 제 3자의 도우미. 두 원소를 받아서 비교 int Comparator(T o1, T o2) : 둘을 비교하기 위해 매개변수 받음 음수 : Comparable - 타원소가 크다 / Comparator - o1o2 0 : 둘이 같다 보통 오름차순. 내림차순 하고 싶으면 부호를 반대로 취하기 java.lang.Comparable class Student implements Comparable{ int no, score; public Student(int no, int score){ super(); this.no = no; t.. 2023. 1. 5.