본문 바로가기

분류 전체보기

(203)
[Java] isEmpty 메서드를 쓰는데 NullPointerException 뜨는 경우 isEmpty 메서드를 사용하는 객체 또는 변수 자체가 null 인 경우 NullPointerException이 뜨게 된다. Ex) List test; 이렇게 선언했을 경우 test 자체가 default 값이 null 이기 때문에 isEmpty() 메서드를 사용하면 null.isEmpty() 가 된다. -> 따라서 NullPointerException 오류가 발생한다. 해결방안) != null 조건 추가
1715번 카드 정렬하기(Java) 우선순위 큐 알고리즘 문제 우선순위 큐를 이용하면 금방 풀 수 있다. ex) 3 3 3 3 1) 우선 두 개를 빼내서 더한다. (3+3=6) 2) 큐 안에 넣는다. (3 3 6) 3) 다시 두 개를 빼내서 더한다. (3+3=6) 4) 큐안에 넣는다. (6 6) 5) 다시 두 개를 빼내서 더한다. (6+6=12) 6) 이 때 큐 안에 남은 값들이 없으므로 종료한다. 7) 두 값을 꺼내 더한 값들을 더한다. (6+6+12=24) 만약 1개의 값이 들어왔다면 비교할 대상이 없으므로 횟수는 0번이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43..
1946번 신입 사원(Java) 그리디 알고리즘 서류심사 성적을 먼저 정렬을 시키면 첫번째 사람은 선발이 된다. 그 이후 면접시험을 비교해주면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 package algorithm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; import java.util.St..
1439번 뒤집기(Java) 오랜만에 풀어보는 알고리즘 문제. 예시로 있는 S=0001100로 설명을 하자면 0001100에서 중복되는 숫자를 제거해서 010으로 만들면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 package algorithm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Problem1439{ public static void main(String[] args) throws IOExc..
1931번 회의실 배정 그리디 알고리즘 회의가 끝난 시간대로 정렬을 하고 다음으로 올 수 있는 회의 시작시간을 찾으면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 package algorithm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; impo..
13305번 주유소 (java) 그리디 알고리즘 ex) N = 4 도시마다 기름 가격 5 2 4 1 도시 사이 거리 2 3 1 도시마다 비교해서 앞 도시의 기름 가격이 더 싸다면 거기서 채워넣으면 된다. 즉, 5 2 4 1 -> 5 2 2 1 로 가격을 생각하면 된다. 마지막 도시의 기름 가격은 신경쓰지 않아도 된다. 답은 5*2 + 2*3 + 2*1 = 18 이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 import java.io.BufferedReader; import java.io.IOException; import java.io.InputS..
1789번 수들의 합 (java) 그리디 알고리즘 ex) N = 200 199 1 197 2 1 194 3 2 1 190 4 3 2 1 195 5 4 3 2 1 이런식으로 빼나가면 된다. ps) S가 1일 경우 N이 1이 되기 때문에 이 경우를 생각해야한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws NumberFormatException, ..
1339번 단어 수학 그리디 알고리즘 각 문자의 자리수를 구해서 더한 뒤 큰 숫자(9)부터 곱해주면 된다. Ex) GCF ACDEB 1) 각 문자의 자리수를 구한다 G -> 100, C -> 10, F -> 1 A -> 10000, C -> 1000, D -> 100, E -> 10, B -> 1 2) 같은 문자끼리 더해준다 -> 10000, 1010, 100, 100, 10, 1, 1 3) 순서대로 9부터 곱하고 더해주면 된다. -> 10000*9 + 1010*8 + 100*7 + 100*6 + 10*5 + 1*4 + 1*3 = 99437 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38..