본문 바로가기
온라인 저지/BOJ

[BOJ/Java] 1436 영화감독 숌

by ahj 2022. 2. 13.

contains 함수를 생각 못하고

while (totalCnt != n) {
	str = Integer.toString(num);
	for (i = 0; i < str.length() - 2; i++) {
		if (str.substring(i, i + 3).equals("666")) {
			totalCnt++;
			break;
		}
	}
	num++;
}

이런 식으로 매 숫자마다 String을 생성하고 또 substring으로 생성하고, 해당 String의 index를 생각해서 했더니 메모리 초과가 발생했다. String이 너무 많아지니 당연히 메모리 초과가 발생하는 건데 메모리도 생각하며 짜도록 해야겠다.

 

정답 코드

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class BOJ1436 {
	static BufferedReader br;
	static int n, totalCnt, num, i;
	static String str;

	public static void main(String[] args) throws Exception {
		br = new BufferedReader(new InputStreamReader(System.in));
		n = Integer.parseInt(br.readLine());
		totalCnt = 0;
		num = 666; // 666부터 check
		while (totalCnt != n) {
			if (String.valueOf(num).contains("666")) {
				totalCnt++;
			}
			num++;
		}
		System.out.println(num - 1);
	}
}

'온라인 저지 > BOJ' 카테고리의 다른 글

[BOJ/Java] 18258 큐2, 10866 덱  (0) 2022.02.13
[BOJ/Java] 11047 동전 0  (0) 2022.02.13
[BOJ/Java] 1406 에디터  (0) 2022.02.13
[BOJ/Java] 1021 회전하는 큐  (0) 2022.02.13
[BOJ/Java] 2563 색종이  (0) 2022.02.11

댓글