문제출처: https://www.acmicpc.net/problem/11536
문제
악독한 코치 주혁은 선수들을 이름 순으로 세우는 것을 좋아한다. 더 악독한 것은 어떤 순서로 서야할지도 알려주지 않았다!
선수들의 이름이 주어질 때 어떤 순서로 이루어져있는지 확인해보자.
입력
첫째 줄에 N개의 이름이 주어진다. (2 ≤ N ≤ 20)
다음 N개의 줄에는 각 선수들의 이름이 주어진다. 이름은 2 이상 12 이하의 대문자로만 이루어져있다. 선수의 이름은 중복되지 않는다.
출력
이름이 증가하는 순으로 나타나면 INCREASING, 감소하는 순이면 DECREASING을 한 줄에 출력한다.
만약 위의 두 경우가 아니라면 NEITHER를 출력한다.
알고리즘
1.문자열끼리 비교해야하므로 2차원배열(행:N개의이름, 열:이름의 길이)를 선언한다.
2. 증가,감소를 판별하기위해 각각의 bool형자료형의 2변수를 선언한다.
3.첫문자열~마지막 문자열까지 차례대로 비교하며 증감을 파악한다.
4. inc, dec의 결과에따라 결과를 출력한다.
#include<iostream> #include<algorithm> #include<cstring> using namespace std; char word[20][13]; int main() { int n; cin >> n; cin >> word[0]; bool inc = true, dec = true; for(int i=1;i<n;i++) { cin >> word[i]; int comp = strcmp(word[i - 1], word[i]); if (comp > 0)//B->A꼴이면 inc = false; else if (comp < 0) dec = false; } if (inc) cout << "INCREASING"; else if (dec) cout << "DECREASING"; else cout << "NEITHER"; cout << endl; }
'문제풀이(BOJ) > 문자열' 카테고리의 다른 글
[백준 9226] 도깨비말 (0) | 2019.12.06 |
---|---|
[백준 1431] 시리얼 번호 (0) | 2019.12.04 |
[백준 2703] Cryptoquote (0) | 2019.12.02 |
[백준10174] 팰린드롬 (0) | 2019.12.02 |
[백준2935]소음 (0) | 2019.12.01 |