※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 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 |