매일 BOJ

(매일 BOJ) C++ 17863번 FYI

norepinephrine 2026. 1. 5. 22:06

이번 문제는 17863번 FYI이다.

1. 문제 개요

  • 문제 내용: 7자리의 전화번호가 주어졌을 때, 앞의 세 자리가 "555"로 시작하면 "YES", 그렇지 않으면 "NO"를 출력하는 프로그램
  • 핵심 포인트: 문자열의 인덱스(Index)에 접근하여 특정 위치의 문자를 비교할 수 있는가?

 

2. 문제 해결 전략

문제를 해결하는 방법은 여러 가지가 있지만, 가장 직관적인 방법은 문자열의 0번, 1번, 2번 인덱스를 각각 확인하는 것

  1. 먼저 b = true라고 가정합니다.
  2. 반복문(for)을 통해 앞의 3글자를 하나씩 검사합니다.
  3. 만약 하나라도 '5'가 아니면 b를 false로 바꾸고 탈출(break)합니다.
  4. 마지막에 b의 상태에 따라 "YES" 또는 "NO"를 출력합니다.

백준(Baekjoon Online Judge) 17863번: FYI 문제 해결을 위한 블로그 포스팅 초안을 작성해 드립니다. 이 문제는 문자열 처리의 기초를 다지기에 아주 좋은 문제입니다.

 

3. 정답 코드 (C++)

#include <iostream>
#include <algorithm>
using namespace std;

int main(void){
    string s;
    cin >> s;
    bool b = true;
    for(int i = 0; i < 3; i++){
        if (s[i] != '5')  {
            b = false;
            break;
        }
    }
    if(!b){
        cout << "NO";
    }
    else{
        cout << "YES";
    }

    return 0;
}