-
백준 9933번: 민균이의 비밀번호문자열(String) 2018. 6. 29. 12:39반응형
https://www.acmicpc.net/problem/9933
1. 문제
창영이는 민균이의 컴퓨터를 해킹해 텍스트 파일 하나를 자신의 메일로 전송했다. 파일에는 단어가 한 줄에 하나씩 적혀있었고, 이 중 하나는 민균이가 온라인 저지에서 사용하는 비밀번호이다. 파일을 살펴보던 창영이는 모든 단어의 길이가 홀수라는 사실을 알아내었다. 그리고 언젠가 민균이가 이 목록에 대해서 얘기했던 것을 생각해냈다. 민균이의 비밀번호는 목록에 포함되어 있으며, 비밀번호를 뒤집어서 쓴 문자열도 포함되어 있다. 예를 들어, 민균이의 비밀번호가 "tulipan"인 경우에 목록에는 "napilut"도 존재해야 한다. 알 수 없는 이유에 의해 모두 비밀번호로 사용 가능하다고 한다. 민균이의 파일에 적혀있는 단어가 모두 주어졌을 때, 비밀번호의 길이와 가운데 글자를 출력하는 프로그램을 작성하시오.
2. 알고리즘
키워드 - 문자열 처리
문자열이 하나만 들어올수도 있다. 이거 찾느라고 암걸리는 줄.
전체적인 문자열은 현재 문자열과 비교대상할 문자열을 reverse 하여 비교 한다.
3. 코드
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include <iostream>#include <sstream>#include <string>#include <algorithm>#include <functional>#include <vector>#include <list>#include <queue>#include <deque>#include <map>#include <set>#include <stack>#include <cstring>using namespace std;#define MAX_SIZE 100#define INF 0x7fffffff/** @memory - 1192 kb* @time - 8 ms*/int main() {cin.tie(0);std::ios::sync_with_stdio(false);int n; cin >> n;vector<string> arr(n);for(int i=0; i<n; i++) {cin >> arr[i];}string sol("");for(int i=0; i<n; i++) {for(int j=i; j<n; j++) {string cand = arr[j];reverse(cand.begin(), cand.end());if (arr[i] == cand) {sol.clear();sol = cand;break;}}}const int size = sol.size() / 2;cout << sol.size() << " " << sol[size] << "\n";return 0;}cs 반응형'문자열(String)' 카테고리의 다른 글
백준 2675번: 문자열 반복 (0) 2018.07.03 백준 2857번: FBI (0) 2018.06.29 백준 2789번: 유학 금지 (0) 2018.06.29 백준 5586번: JOI와 IOI (0) 2018.06.29 백준 1120번: 문자열 (0) 2018.06.29