728x90
https://www.acmicpc.net/problem/1436
1436번: 영화감독 숌
666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타
www.acmicpc.net
이 문제는 예전에 c++로 풀었던 문제인데 완전 탐색 공부하면서 다시 풀어본다.
i를 666부터 차례로 올라가면서 666을 연속으로 가지고 있는지 체크하는 방식으로 했다.
그런데 가끔씩 이런 문제는 분명 맞았는데... 시간초과가 나오는 경우가 있다.
최대 10000번째 종말의 수를 구해도 충분히 시간 내에 구할 수 있을 텐데 왜 시간초과가??
[시간 초과]
import Foundation
let n = Int(readLine()!)!
var m = 0
var i = 666
while true {
let tmp = String(i)
if tmp.contains("666") { m += 1 } //666이 포함되어있나?
if n == m { break }
i += 1
}
print(i)
이렇게 문자열 내에 "666"가 있는지 확인하는 contains 함수를 사용했던 게 시간을 잡아먹었는지
import Foundation
let n = Int(readLine()!)!
var m = 0
var i = 666
while true {
let str = String(i)
var cnt = 0
for s in str {
if s == "6" { cnt += 1 }
else { cnt = 0 }
if cnt == 3 {
m += 1
}
}
if n == m { break }
i += 1
}
print(i)
이렇게 하니까 해결됐다! 꼭 이렇게 풀어서 구현해야.. 되는 Swift... 이 쪽으로 좀 더 공부를 해봐야겠다.
빠르게 진행하기 위해!!
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/Swift] 16508번: 전공책 (1) | 2023.01.26 |
---|---|
[백준/Swift] 14501번 퇴사(백트래킹) (0) | 2023.01.19 |
[백준/Swift] 9012번: 괄호 (0) | 2023.01.17 |
[백준/Swift] 11866번: 요세푸스 문제 0 (0) | 2023.01.17 |
[백준/Swift] 2468번: 안전 영역 (0) | 2023.01.12 |