반응형
https://www.acmicpc.net/problem/11536
11536번: 줄 세우기
이름이 증가하는 순으로 나타나면 INCREASING, 감소하는 순이면 DECREASING을 한 줄에 출력한다. 만약 위의 두 경우가 아니라면 NEITHER를 출력한다.
www.acmicpc.net
또 세우기 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
이름 수 n, 증감소상태 stat, 이름 목록을 저장할 vector s를 선언 후 입력받습니다.
📔 풀이과정
s에 대해 for loop를 수행합니다.
stat 이름목록의 상태를 나타냅니다. -1인 경우 내림차순이며, 0은 아무것도 아닌 상태, 1은 오름차순입니다.
크게 2경우로 나뉘며 각각 두 경우로 나누어 해결할 수 있습니다.
1. 이전 이름이 다음 이름보다 작은 경우 : 이 경우는 오름차순인 경우와 아무것도 아닌 경우로 나뉩니다.
아무것도 아닌 경우는 이전에 stat이 -1이며 현재 증가했으므로 stat = 0이 됩니다.
2. 이전 이름이 다음 이름보다 큰 경우 : 내림차순인 경우, 아무것도 아닌 경우로 나뉩니다.
아무것도 아닌 경우는 이전에 stat이 1이며 현재 감소했으므로 stat = 0이 됩니다.
📔 정답출력
stat의 조건에 따라 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int n, stat = 2;
vector <string> s;
int main(){
cin >> n;
s.resize(n);
for(int i = 0; i < n; i++) cin >> s[i];
for(int i = 1; i < n; i++) {
if(s[i-1] < s[i]) {
if(stat == -1) stat = 0;
else if(stat == 2) stat = 1;
}
else {
if(stat == 1) stat = 0;
else if(stat == 2) stat = -1;
}
}
if(stat == -1) cout << "DECREASING";
else if(stat == 0) cout << "NEITHER";
else cout << "INCREASING";
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 1996 : 지뢰 찾기 (0) | 2022.05.03 |
---|---|
(C) - 백준(BOJ) 25083번 : 새싹 (0) | 2022.04.29 |
(C++) - 백준(BOJ) 24218 : Double Crypt 1 (0) | 2022.04.25 |
(C++) - 백준(BOJ) 11637 : 인기 투표 (0) | 2022.04.24 |
(C++) - 백준(BOJ) 14491 : 9진수 (0) | 2022.04.23 |