※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 24745번 문제인 Morse Code Palindromes이다.
문제는 아래 링크를 확인하자.

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

 

24745번: Morse Code Palindromes

A palindrome is a word, number, phrase, or other sequence of characters which reads the same backward as forward, such as madam or racecar or 1881. Phase palindromes ignore capitalization, punctuation, and word boundaries. For example: Madam I'm Adam. Mors

www.acmicpc.net

주어진 문자열의 각 알파벳과 숫자를 문제에서 주어진 모스코드로 변환하고, 이를 뒤집어 원래의 모스코드와 같은지 비교하는 것으로 문제를 해결할 수 있다.

 

각 문자의 모스코드를 제대로 옮겼는지, 대소문자 처리를 했는지, 주어진 예시들처럼 공백까지 일치할 필요는 없다는 점을 인지했는지, 주어진 문자열에 알파벳과 숫자가 없다면 조건대로 NO를 출력하는지 등을 확인하면서 구현하자.

 

아래는 제출한 소스코드이다.

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

string morse[128];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	morse['A'] = ".-";
	morse['B'] = "-...";
	morse['C'] = "-.-.";
	morse['D'] = "-..";
	morse['E'] = ".";
	morse['F'] = "..-.";
	morse['G'] = "--.";
	morse['H'] = "....";
	morse['I'] = "..";
	morse['J'] = ".---";
	morse['K'] = "-.-";
	morse['L'] = ".-..";
	morse['M'] = "--";
	morse['N'] = "-.";
	morse['O'] = "---";
	morse['P'] = ".--.";
	morse['Q'] = "--.-";
	morse['R'] = ".-.";
	morse['S'] = "...";
	morse['T'] = "-";
	morse['U'] = "..-";
	morse['V'] = "...-";
	morse['W'] = ".--";
	morse['X'] = "-..-";
	morse['Y'] = "-.--";
	morse['Z'] = "--..";
	morse['0'] = "-----";
	morse['1'] = ".----";
	morse['2'] = "..---";
	morse['3'] = "...--";
	morse['4'] = "....-";
	morse['5'] = ".....";
	morse['6'] = "-....";
	morse['7'] = "--...";
	morse['8'] = "---..";
	morse['9'] = "----.";

	string s; getline(cin, s);
	string str = "";
	string rev;
	for (auto& l : s) {
		l = toupper(l);
		str += morse[l];
	}

	if (str == "") cout << "NO";
	else {
		rev = str;
		reverse(rev.begin(), rev.end());

		if (str == rev) cout << "YES";
		else cout << "NO";
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 24820 // C++] Spelling Bee  (0) 2022.03.25
[BOJ 24751 // C++] Betting  (0) 2022.03.24
[BOJ 9933 // C++] 민균이의 비밀번호  (0) 2022.03.22
[BOJ 2503 // C++] 숫자 야구  (0) 2022.03.21
[BOJ 13900 // C++] 순서쌍의 곱의 합  (0) 2022.03.20

+ Recent posts