https://www.acmicpc.net/problem/1436
87124KB 300ms
메모리 제한 : 128 MB 메모리초과 오류
✅ String.valueOf(i).contains("666"):
❎ String.valueOf(i).matches(".666.”)
정규 표현식은 일반적으로 문자열을 처리하는 데 더 많은 연산을 필요로 하며, 더 복잡한 패턴 검색을 수행합니다. 이로 인해 메모리 사용량이 더 많을 수 있으며, 실행 시간이 더 오래 걸릴 수 있습니다.String.valueOf(i).contains("666")을 사용한 코드가 메모리 사용량이 더 낮고 효율적인 방법으로 보이며, matches를 사용한 코드보다 빠르게 실행될 가능성이 높습니다. 이것이 메모리 초과 문제를 회피하는 이유일 수 있습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class 영화감독숌 {
public static void main(String arg[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int count = 0;
int i = 0;
while (count != N) {
i++;
if (String.valueOf(i).contains("666")) {
count++;
if (count == N)
System.out.println(i);
}
}
}
}