반응형
https://www.acmicpc.net/problem/2204
자료구조 map을 이용해 해결했습니다.
📕 풀이방법
📔 입력 및 초기화
원본 문자열을 저장할 vector 변수 v, map변수 m에는 모두 소문자로만든 문자열이 key, 그 문자열의 원본문자열이 저장되어있는 v의 index를 저장했습니다.
📔 풀이과정
1. v를 저장할 때마다 해당 문자열을 모두 소문자로 바꾸고 그 인덱스를 m에 저장해줍니다. 2. map에 삽입시 자동 사전순으로 key가 저장되므로 map의 가장 첫 번째 원소.second에 해당하는 v를 출력하면됩니다.
📔 정답출력
v[map.begin()->second] 출력
📕 Code
#include <bits/stdc++.h>
using namespace std;
int n;
vector <string> v(1001);
map <string,int> m;
int main(){
while(1){
cin >> n;
if(!n) break;
v.clear(), m.clear();
for(int i = 0; i < n; i++) {
cin >> v[i];
string tmp;
for(int j = 0; j < v[i].size(); j++){
if('A' <= v[i][j] && v[i][j] <= 'Z') tmp += v[i][j] -'A' +'a';
else tmp += v[i][j];
}
m[tmp] = i;
}
cout << v[m.begin() -> second] << '\n';
}
}
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - 백준(BOJ) 2075번 : N번째 큰 수 (0) | 2021.09.01 |
---|---|
(C++) - 프로그래머스(위클리 챌린지) : 4주차 (0) | 2021.08.23 |
(C++) - 백준(BOJ) 10546번 : 배부른 마라토너 (0) | 2021.08.14 |
(C++) - 백준(BOJ) 1811번 : 카드 놓기 (0) | 2021.08.03 |
(C++) - 백준(BOJ) 16499번 : 동일한 단어 그룹화하기 (0) | 2021.07.30 |