문제출처: 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

+ Recent posts