짱아의 개발 기록장

[SWEA] 10059. 유효기간(c++) / 문자열 처리 본문

Algorithm/SW Expert Academy

[SWEA] 10059. 유효기간(c++) / 문자열 처리

jungahshin 2020. 8. 11. 13:25
반응형

간단한 문자열 처리 문제입니다.

앞의 두 글자와 뒤의 두 글자를 나눠서

1) 둘 다 01~12에 해당한다면, "AMBIGUOUS"

2) 앞에만 01~12에 해당한다면, "MMYY"

3) 뒤에만 01~12에 해당한다면, "YYMM"

4) 둘 다 해당되지 않는다면, "NA"

 

 

코드 첨부

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// 10059. 유효기간
#include <iostream>
#include <vector>
using namespace std;
 
int testcase;
string s;
vector<string> validation;
string month[12= {"01""02""03""04""05""06""07""08""09""10""11""12"};
vector<string> final;
 
int main()
{
    cin>>testcase;
    for(int i=0; i<testcase; i++){
        cin>>s;
        validation.push_back(s);
    }
 
    for(int i=0; i<validation.size(); i++){
        // 앞 두 글자 01~12인지 확인
        string first;
        first += validation[i][0];
        first += validation[i][1];
 
        bool check_first = false;
        for(int j=0; j<12; j++){
            if(first==month[j]){
                check_first = true;
                break;
            }
        }
        
        string second;
        second += validation[i][2];
        second += validation[i][3];
 
        bool check_second = false;
        for(int j=0; j<12; j++){
            if(second==month[j]){
                check_second = true;
                break;
            }
        }
        
        if(check_first==true && check_second==true){ // 애매한 경우
            final.push_back("AMBIGUOUS");
        }else if(check_first==true && check_second==false){ // MMYY인 경우
            final.push_back("MMYY");
        }else if(check_first==false && check_second==true){ // YYMM인 경우
            final.push_back("YYMM");
        }else// NA인 경우
            final.push_back("NA");
        }
    }
 
    for(int i=0; i<final.size(); i++){
        cout<<"#"<<i+1<<" "<<final[i]<<"\n";
    }
    
    return 0;
}
cs

 

문제 첨부

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXK6YRNaKq0DFAU3&categoryId=AXK6YRNaKq0DFAU3&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

반응형
Comments