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

 

이번에 볼 문제는 백준 9933번 문제인 민균이의 비밀번호이다.
문제는 아래 링크를 확인하자.

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

 

9933번: 민균이의 비밀번호

첫째 줄에 단어의 수 N (2 ≤ N ≤ 100)이 주어진다. 다음 N개 줄에는 파일에 적혀있는 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 소문자로만 이루어져 있으며, 길이는 2보다 크고 14보다 작은

www.acmicpc.net

문제에서 주어진 내용을 그대로 구현하자.

 

주어지는 모든 문자열을 set에 넣어 관리하면 구현을 편하게 할 수 있다.

 

문자열을 뒤집는 것은 algorithm 헤더의 reverse 함수를 이용하여 쉽게 할 수 있다.

 

글쓴이는 set에 들어있는 각 문자열마다 뒤집은 문자열이 set에 들어있는지 체크하는 방식으로 구현하였다.

 

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

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

set<string> stringSet;

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

	int N; cin >> N;
	while (N--) {
		string s; cin >> s;
		stringSet.insert(s);
	}
	for (auto s : stringSet) {
		string tmp = s;
		reverse(tmp.begin(), tmp.end());
		if (stringSet.find(tmp) != stringSet.end()) {
			int slen = s.length();
			cout << slen << ' ' << s[slen / 2];
			break;
		}
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 24751 // C++] Betting  (0) 2022.03.24
[BOJ 24745 // C++] Morse Code Palindromes  (0) 2022.03.23
[BOJ 2503 // C++] 숫자 야구  (0) 2022.03.21
[BOJ 13900 // C++] 순서쌍의 곱의 합  (0) 2022.03.20
[BOJ 23973 // C++] 표적지 옮기기  (0) 2022.03.19

+ Recent posts