[백준 BOJ] 6841번 I Speak TXTMSG (C++/cpp)

2024. 2. 8. 17:35PS (Program Solving)/BOJ (백준)

문제 설명

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

 

6841번: I Speak TXTMSG

The program will output text immediately after each line of input. If the input is one of the phrases in the translation table, the output will be the translation; if the input does not appear in the table, the output will be the original word. The transla

www.acmicpc.net

백준 BOJ 6841번 I Speak TXTMSG 문제 사진1
백준 BOJ 6841번 I Speak TXTMSG 문제 사진2

 

접근 방법 - 단순 문자열 비교 문제

백준의 6841번 문제는 입력받은 문자열을 정해진 특정 값과 비교하며 정답을 출력해야 하는 문제이다.

해당 문제는, 순차적으로 주어지는 입력값들에 대하여 문제에 제시된 규칙에 따라 그 의미를 출력해야 하는 문제이다.

문제에 표가 있는데, 입력값이 의미하는 문장을 순서대로 출력만 하면 되는 문제이다.

다만 테스트 케이스 또는 입력값의 개수가 별도로 입력으로 주어지진 않은데, "TTYL"를 입력받으면 실행 종료를 해야 한다.

이를 통해서, 이 문제는 무한 반복문을 써서 해결해야 하는 문제임을 알 수 있다.

더 자세한 사항은 아래에 기재해 놓으니, 혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면 아래의 설명 및 코드를 참고해 보길 바란다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 무한 반복문을 실행하여, 아래의 연산을 취한다.

- 값(st)을 입력받는다.

- 문제의 표에 따라, st에 따른 정답을 순차적으로 출력하도록 한다. 

이때 "TTYL"를 입력받는 경우에는 반복문 실행을 종료해야 하기 때문에, 정답을 출력하고 반복문에서 빠져나오도록 한다.

 

2) 1)의 무한 반복문에서 빠져나왔다면, 즉시 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;

//백준 6841번 코드
int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);   cout.tie(NULL);
    
    while (true) {
        string st;
        cin >> st;
        if (st == "TTYL") {
            cout << "talk to you later" << endl;
            break;
        }
        else if (st == "CU") { cout << "see you" << endl; }
        else if (st == ":-)") { cout << "I’m happy" << endl; }
        else if (st == ":-(") { cout << "I’m unhappy" << endl; }
        else if (st == ";-)") { cout << "wink" << endl; }
        else if (st == ":-P") { cout << "stick out my tongue" << endl; }
        else if (st == "(~.~)") { cout << "sleepy" << endl; }
        else if (st == "TA") { cout << "totally awesome" << endl; }
        else if (st == "CCC") { cout << "Canadian Computing Competition" << endl; }
        else if (st == "CUZ") { cout << "because" << endl; }
        else if (st == "TY") { cout << "thank-you" << endl; }
        else if (st == "YW") { cout << "you’re welcome" << endl; }
        else { cout << st << endl; }
    }
}

 

제출 결과

백준 BOJ 6841번 I Speak TXTMSG 문제 C++ 제출 결과

(2023.09.01 백준 6841번 문제 제출 결과)

반응형