N

(SWEA c++)1221. [S/W 문제해결 기본] 5일차 - GNS 본문

SW Expert Academy

(SWEA c++)1221. [S/W 문제해결 기본] 5일차 - GNS

naeunchan 2020. 10. 12. 11:00
728x90
반응형

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

 

SW Expert Academy

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

swexpertacademy.com

복잡하게 할 필요 없이 if문을 이용하여 문제를 해결했다.

우선 0 ~ 9까지 해당하는 행성의 이름을 전역변수로 선언한다.

 

string s를 n개만큼 받아 s에 해당하는 행성의 카운트를 +1 시켜준다.

n개를 모두 받아오면 count 배열을 0부터 차례대로 해당하는 횟수만큼 planet을 출력하면 된다.

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

string planet[10] = {"ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"};

int main(void)
{
    int t;
    cin >> t;
    
    for(int i = 1; i <= t; i++)
    {
        string tc, s;
        int count[10] = {0, };
        int n;
        cin >> tc >> n;
        
        for(int j = 0; j < n; j++)
        {
            cin >> s;
            if(s == "ZRO")
                count[0]++;
            else if(s == "ONE")
                count[1]++;
            else if(s == "TWO")
                count[2]++;
            else if(s == "THR")
                count[3]++;
            else if(s == "FOR")
                count[4]++;
            else if(s == "FIV")
                count[5]++;
            else if(s == "SIX")
                count[6]++;
            else if(s == "SVN")
                count[7]++;
            else if(s == "EGT")
                count[8]++;
            else if(s == "NIN")
                count[9]++;
        }
        
        cout << tc << endl;
        for(int j = 0; j < 10; j++)
        {
            if(count[j] != 0)
            {
                for(int k = 0; k < count[j]; k++)
                    cout << planet[j] << " ";
            }
        }
        cout << endl;
    }
    return 0;
}
728x90
반응형