728x90
SMALL
백준 문제 풀이: 1436 [영화감독 숌]
문제 링크: https://www.acmicpc.net/problem/1436
문제 설명:
영화감독 숌은 세상의 끝을 나타내는 숫자인 "666"이 들어간 숫자를 영화 제목으로 사용합니다.
n번째로 작은 "666"이 포함된 숫자를 출력하는 프로그램을 작성하세요.
문제 해결 코드
#include <iostream>
#include <string>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n;
string s;
int k = 1; // 카운트 변수
int i = 666; // 처음 시작하는 숫자
while (true) {
s = to_string(i); // 숫자를 문자열로 변환
if (s.find("666") != string::npos) { // "666"이 포함된 경우
if (k == n) { // n번째 영화 제목인 경우 출력
cout << i << '\n';
break;
}
k++;
}
i++; // 다음 숫자로 이동
}
}
코드 설명
- 핵심 아이디어: 숫자를 문자열로 변환한 뒤 "666"이 포함되었는지 확인합니다. 조건을 만족하는 숫자를 카운트하여 n번째 숫자를 찾습니다.
- 구현 세부사항:
to_string()
: 숫자를 문자열로 변환하여 문자열 검색에 활용.s.find("666")
: 문자열에서 "666"을 찾는 함수.- n번째로 "666"을 포함하는 숫자가 발견되면 반복문을 종료하고 출력합니다.
- 시간 복잡도: O(n * m)
- n: n번째 숫자를 찾기 위해 반복.
- m: 숫자를 문자열로 변환 후 "666"을 찾는 과정.
결과
n번째로 작은 "666"이 포함된 숫자를 성공적으로 출력합니다. 문제의 조건에 맞게 효율적으로 구현되었습니다.
궁금한 점이나 다른 접근 방법이 있다면 댓글로 알려주세요!
728x90
LIST
'BAEKJOON > 브루트포스' 카테고리의 다른 글
백준 7568번 [덩치](C++)-yes6686- 티스토리 (0) | 2024.01.03 |
---|---|
백준 2798번 [블랙잭](C++)-yes6686- 티스토리 (0) | 2024.01.02 |
백준 2231번 [분해합](C++)-yes6686- 티스토리 (0) | 2024.01.02 |
백준 1018번 [체스판 다시 칠하기](C++)-yes6686- 티스토리 (1) | 2023.12.21 |
백준 3040번 [백설 공주와 일곱 난쟁이](C++)-yes6686- 티스토리 (0) | 2023.12.15 |