• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • [Baekjoon(백준)][1436번] 영화감독 숌(C++)
    2024년 01월 31일
    • 유니얼
    • 작성자
    • 2024.01.31.:31
    728x90

    안녕하세요! 오늘은 코딩테스트 문제 중 하나인 "영화감독 숌" 문제를 해결하는 방법에 대해 설명하려고 합니다. 이 문제에서는 특정 패턴(666이 연속으로 들어가는)을 가진 숫자를 찾는 것입니다 문제를 해결하는 과정과 코드를 자세히 알아보겠습니다.

    문제링크:

    https://www.acmicpc.net/problem/1436

     

    1436번: 영화감독 숌

    666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워

    www.acmicpc.net

    Question_1
    Question_2

    문제 개요

    "영화감독 숌" 문제에서는 특정 패턴(666이 연속으로 들어가는)을 가진 숫자를 찾는 것입니다. N번째로 작은 '종말의 수'를 찾아야 합니다. 예를 들어, 첫 번째 종말의 수는 666, 두 번째는 1666입니다.

    해결 방법

    문제를 해결하기 위해, 666부터 시작하여 각 숫자에 666이 포함되어 있는지 확인하고, N번째로 해당 패턴을 만족하는 숫자를 찾아야 합니다.

    코드 구현

    #include <iostream>
    #include <vector>
    #include <string>
    
    using namespace std;
    
    // 숫자에 666이 연속으로 들어가는지 확인하는 함수
    bool go(int s) {
        string d = to_string(s);
        for (int i = 2; i < d.size(); i++) {
            if (d[i - 2] == '6' && d[i - 1] == '6' && d[i] == '6') {
                return true;
            }
        }
        return false;
    }
    
    int main() {
        ios_base::sync_with_stdio(false);
        cin.tie();
        cout.tie();
    
        int n = 0;
        cin >> n;
    
        int start = 666;
        vector<string> strs;
        while (strs.size() < n) {
            if (go(start)) {
                strs.push_back(to_string(start));
            }
            start++;
        }
        cout << strs[n - 1] << "\n";
    }

    코드 설명

    이 코드는 '666'이 들어간 숫자를 순차적으로 찾아가는 방식을 사용합니다. go 함수는 주어진 숫자에 '666'이 연속으로 들어가는지 확인합니다. 만약 조건을 만족하면 해당 숫자를 strs 벡터에 추가합니다. 이 과정을 N번째 종말의 수를 찾을 때까지 반복합니다.

    결론

    "영화감독 숌" 문제는 문자열 처리와 간단한 반복문을 사용하여 해결할 수 있습니다. 특정 패턴을 만족하는 숫자를 찾는 것이 핵심이며, 이를 위해 숫자를 문자열로 변환하여 패턴을 검사하는 방식을 사용합니다.

    반응형
    다음글
    다음 글이 없습니다.
    이전글
    이전 글이 없습니다.
    댓글
조회된 결과가 없습니다.
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바