[백준 BOJ] 11365번 !밀비 급일 (C++/cpp)

2022. 11. 21. 16:08PS (Program Solving)/BOJ (백준)

문제 설명

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

 

11365번: !밀비 급일

당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면 해독된다는 것을 발견했다. 이 암호를 해독하는 프로그램을 작성하시오.

www.acmicpc.net

백준 BOJ 11365번 !밀비 급일 문제 사진

 

접근 방법 - 문자열 연산의 기초 문제

백준의 11365번 문제는 문자열 연산에 있어 기본적인 원리를 다루고 있는 문제이다.

해당 문제는, 입력받은 문자열의 문자 순서를 뒤집어 출력해야 하는 문제이다.

이는, 반복문을 이용한 문자열 연산만 어느 정도 할 수 있다면 쉽게 풀 수 있는 문제일 것으로 예상된다.

다만, "END"를 입력받을 때까지 연산을 계속 수행하여야 하기 때문에 무한 반복문을 통해 연산해야 할 것이다.

또한, 입력값으로 주어지는 문자열들은 공백을 포함할 수도 있기 때문에, 입력받을 때 이 점도 함께 유의하여야 한다.

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

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

 

코드의 실행 결과

* 무한 반복문을 통해, 연산을 수행해야 한다. 

 

1) 문자열(st)을 한 줄씩 입력받는다.

이때, 공백을 포함한 문자열을 입력받을 수 있도록 한다.

(만일 여기서 "END"를 입력받았다면, 해당 반복문을 탈출한다.)

 

2) 다른 반복문을 통해, st의 끝 문자부터 시작해 문자열을 역순으로 출력하도록 한다.

출력이 끝났다면, 개행을 출력한 뒤 1)로 돌아가도록 한다.

 

3) 무한 반복문을 탈출하였다면, 즉시 실행 종료한다.

반응형

 

성공한 코드

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

//백준 11365번 코드
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);	cout.tie(NULL);

	while (1) {
		string st;
		getline(cin, st);
		if (st == "END") { break; }

		for (int i = st.length() - 1; i >= 0; i--) {
			cout << st[i];
		}
		cout << endl;
	}
}

 

제출 결과

백준 BOJ 11365번 !밀비 급일 문제 C++ 제출 결과

(2022.10.02 백준 11365번 문제 제출 결과)

반응형