Priceless
[백준] 2204번: 도비의 난독증 테스트 (C++) 본문

문자열의 대문자와 소문자 상관 없이 사전적으로 가장 앞에 있는 단어를 출력하는 문제다
C++이라 문자열을 일일이 비교해야 할 줄 알았지만
부등호 하나로 쉽게 비교할 수 있어서 생각보다 어렵지 않았다
입력 값과 현재까지의 가장 앞의 값을 대문자 혹은 소문자로 통일한 후 비교하여
대문자 혹은 소문자로 통일되지 않은 문자를 출력하도록 문제를 풀었다
처음에는 아스키 코드로 접근하려다가
임시 변수를 설정하고 대문자나 소문자로 통일하는 것이 훨씬 속 편한 방법이다
// baekjoon 2204
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;
// codes for fast I/O
void init(){
cin.tie(0);
cout.tie(0);
ios_base::sync_with_stdio(false);
}
int main(){
init();
int n ;
string first;
string first_temp;
while(true){
cin >> n;
if(n == 0){
break;
}
first = "zzzzzzzzzzzzzzzzzzzzzzzzzzzz";
string input;
for(int i = 0; i < n; i++){
cin >> input;
string temp = input;
first_temp = first;
for(int j = 0; j < input.size(); j++){
temp[j] = toupper(input[j]);
}
for(int j = 0; j < first.size(); j++){
first_temp[j] = toupper(first[j]);
}
if(first_temp > temp){
first = input;
}
}
cout << first << '\n';
}
return 0;
}
'Algorithm & Test > 백준' 카테고리의 다른 글
[백준] 1012번: 유기농 배추 (C++) (0) | 2023.09.06 |
---|---|
[백준] 2246번: 콘도 선정 (C++) (0) | 2023.09.03 |
[백준] 4307번: 개미 (C++) (0) | 2023.09.01 |
[백준] 15903번: 카드 합체 놀이 (C++) (0) | 2023.08.31 |
[백준] 1010번: 다리 놓기 (C++) (0) | 2023.08.30 |