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 | 29 | 30 |
Tags
- IT 좀 아는 사람
- JPA
- 구름톤
- 멀록 조명등
- 금 채굴하기
- 구름톤 트레이닝
- Today I Learned
- 코딩테스트실력진단
- 완전탐색
- TagLibraryValidator
- 1931번
- 최장 공통 부분수열
- spring
- 코딩테스트
- til
- 즉시로딩
- 백준
- @EntityGraph
- 백준 #1010 #다리놓기
- 공부하기 싫어 #그래도 해야해
- 1005 #ACM craft #백준
- 행복한 수열의 개수
- eager
- 지연로딩
- 코드트리 챌린지
- 공부 기록
- 회의실 배정
- 구름톤 챌린지
- 코드트리
- 동적 계획법
Archives
- Today
- Total
화분
[Baekjoon]1107번 리모컨 풀이 본문
1107번: 리모컨
첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼이
www.acmicpc.net
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 |