백준알고리즘:p1436 영화감독 숌
분류: 브루트포스
▶문제
▶코드
//백준알고리즘 제출시 클래스 이름은 Main으로 바꿔야 됨
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class p1436 {
//영화감독 숌
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
try {
int n = Integer.parseInt(br.readLine());
//666, 1666 2666 3666 4666 5666 6666 6661 6662 6663 6664 6665 6666 6667 6668 6669 7666 8666 9666
//10666 11666 12666 13666 14666 15666 /16660 16661 16662 16663 16664 16665 16666 16667 16668 16669
//17666 18666 19666
int number = 666;
int count = 1;
while(count<n) {
number++;
if(String.valueOf(number).contains("666")) count++;
}
bw.write(number+"\n"); bw.flush();
}catch (Exception e) { e.printStackTrace(); }
}
}
▶케이스를 나눠서 풀어야 하나 어떻게 푸는지 고민을 많이 해봤는데
그냥 666부터 숫자를 증가시켜 문자열 666을 포함하면 count를 증가시켜서
입력받은 수와 count가 같으면 중단하도록 해
그 숫자가 영화제목이 되는 식으로 풀었다.
▶String.valueOf() vs. toString()
둘 다 문자열로 바꾸는 것이긴 하지만 차이가 있다.
두 메소드 모두 Object의 값을 String으로 변환하지만, 그 Object가 null인 경우엔 다르다!
- String.valueOf() : 파라미터가 null이면 문자열 "null"을 만들어서 반환한다.
- toString() : 대상 값이 null이면 NPE를 발생시키고 Object에 담긴 값이 String이 아니여도 출력한다.
▶NPE(NullPointerException) 란?
null 값을 가진 객체를 참조하려고 했을 때 일어나는 Exception 이다.
이를 방지하기 위해선, toString()보단 String.valueOf()를 쓰는 것이 좋다.
▶String.valueOf()
또, 저번에 char타입을 String으로 어떻게 바꾸는지 모르겠어서
다른 문제들에서 char를 String으로 바꾸는 방식을 사용안하게 하느라 힘들었는데...
String.valueOf()를 쓰면 가능하다.
▶valueOf()
valueOf()는 객체를 리턴한다, 그래서
Integer.vlaueOf("123") 하면 Integer객체가 반환되는데
Integer.parseInt("123")를 하면 기본자료형 int가 반환된다.
채점결과
링크 www.acmicpc.net/problem/1436
1436번: 영화감독 숌
666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타
www.acmicpc.net