코딩테스트/백준_실버 [C++] 영화감독 숌 - [문제] https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net [문제 풀이] 처음엔 어떻게 접근해야 할지 감이 안왔는데 알고리즘 종류가 브루트 포스인걸 보고 전부 돌려보자고 판단할 수 있었던 문제. (다음부터는 알고리즘 종류를 안봐도 감이 올 수 있게 연습을 하자.) 숫자를 666부터 계속해서 올려가면서 666을 카운트 하면서 입력값에 카운트가 걸리면 해당 값을 반환하도록 만들었다. 문제를 풀다 보면 오류가 생길 수 있는 부분이 6666이다. 6666의 경우에는 666x에서도 666이고 x666에서도 666이 있기에 난 666이 나오는 순간 해당 부분을 break를 통해서 빠져나오게 만들었다. [코드] #include <iostream> #include <string> using namespace std; string find_count(int n){ string answer = ""; int count = 0; //666부터 시작해서 계속 i올리기 for(int i = 666;;i++){ //answer는 숫자 i를 string으로 변환한다. answer = to_string(i); //j는 answer의 문자길이 -2(연속으로 3개를 볼 거기 때문에) 만큼 반복. for(int j = 0;j<answer.length() - 2;j++){ //만일 연속으로 3개가 6이라면 if(answer[j] == '6' && answer[j + 1] == '6' && answer[j + 2] == '6'){ //count를 올리자. count++; //break를 해주는 이유는 만일 안해준다면 6666에서 count가 2번 올라간다. break; } } //만일 count가 n이라면 if(count == n){ return answer; } } return 0; } int main(){ int n; cin>>n; string answer = ""; answer = find_count(n); cout<<answer<<endl; return 0; } 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기Yoon-1212 Contents 당신이 좋아할만한 콘텐츠 [C++][백준 18352] 특정 거리의 도시 찾기 2023.03.29 [C++][백준 1389] 케빈 베이컨의 6단계 법칙 2023.03.25 [C++][백준 11660] 구간 합 구하기 5 2023.02.22 [C++][백준 2343] 기타 레슨 2022.11.04 댓글 0 + 이전 댓글 더보기