Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코드트리 챌린지
- 백준
- 금 채굴하기
- IT 좀 아는 사람
- 구름톤
- Today I Learned
- 최장 공통 부분수열
- TagLibraryValidator
- 코드트리
- eager
- 공부하기 싫어 #그래도 해야해
- 코딩테스트실력진단
- 회의실 배정
- 즉시로딩
- 동적 계획법
- 완전탐색
- 구름톤 챌린지
- til
- 공부 기록
- 지연로딩
- 1005 #ACM craft #백준
- @EntityGraph
- 구름톤 트레이닝
- 백준 #1010 #다리놓기
- 코딩테스트
- 행복한 수열의 개수
- spring
- 1931번
- 멀록 조명등
- JPA
Archives
- Today
- Total
화분
[Baekjoon]1107번 리모컨 풀이 본문
import java.util.Scanner;
//import java.io.IOException;
//import java.io.BufferedReader;
//import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
int countBroken = sc.nextInt();
boolean[] brokens = new boolean[10];
for(int i = 0; i < countBroken; i++){
brokens[sc.nextInt()] = true;
}
int minNum = Math.abs(count - 100);
for(int i = 0; i <= 999999; i++){
String iterStr = String.valueOf(i);
for(int j = 0; j < iterStr.length(); j++){
if(brokens[iterStr.charAt(j) - '0']){
break;
}
if(j == iterStr.length() - 1){
minNum = Math.min(minNum, iterStr.length() + Math.abs(count - i));
}
}
}
System.out.println(minNum);
}
}
코드를 작성하면서 많이 애먹은 부분은 nullPointer에러이다.
BufferedReader로 문자열을 입력 받았는데 아무것도 입력 받지 않을 경우 null 값이 생성되기 때문이다. 이 부분을 생각하지 못하여서 고민하다가 chatGPT와 다른 사람의 풀이를 보고 Scanner로 바꿨더니 정답을 맞췄다. 아마 BufferedReader를 사용한다면 null값인지 확인해줄 필요가 있다.
그리고 고장난 번호를 위와 같이 배열로 확인하는 것이 아닌 HashSet을 이용하여 풀었는데 이 부분 또한 문제가 됐다. 예를 들어 Set에 아무 값도 없는데 containsAll 메서드를 사용하면 문제가 되는거 같다. 그래서 그 부분 또한 배열로 바꿔 풀었다.
'Study > CODINGTEST' 카테고리의 다른 글
[Baekjoon]2448번 별 찍기 - 11 (0) | 2023.12.20 |
---|---|
[코드트리 챌린지] 홀수 짝수의 묶음 (0) | 2023.09.13 |
[코드트리 챌린지] 금 채굴하기 (0) | 2023.09.12 |
[코드트리 챌린지] 트로미노 (0) | 2023.09.11 |
[구름톤 챌린지 19일차] 대체 경로 (0) | 2023.09.10 |