본문 바로가기

algo

SW Expert Academy Magnetic C++

개인적인 풀이이니 참고만 하시길 바랍니다.
건설적인 비판과 의견은 대환영입니다 :)

문제

[S/W 문제해결 기본] 5일차 - Magnetic
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14hwZqABsCFAYD

위 문제는 특정 조건을 이해한 단순 구현 문제이다. (유식하게 표현하는 방법이 있다면 댓글로 알려주세요 !)

크게 어렵지 않았으며 N극(빨간색)을 먼저 발견한 다음 S극(파란색)을 발견한 경우만 result ++ 해주었다.
(내 알고리즘 실력이 늘어서 빨리 푼게 아니라 문제가 쉬웠던거다.. 착각하고 교만하지말자 ㅜ)

코드

#include<iostream>

using namespace std;

int main(int argc, char** argv)
{
    int test_case;
    int T = 10;
    for (test_case = 1; test_case <= T; ++test_case)
    {
        int mp[100][100];
        int N;
        int res = 0;
        cin >> N;
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                cin >> mp[i][j];
            }
        }

        for (int i = 0; i < N; i++) {
            int j = 0;
            int cur = 0;
            while (j < N) {
                if (mp[j][i] == 1) { //빨강 발견
                    cur = 1;
                }
                else if (cur == 1 && mp[j][i] == 2) { // 빨강일때 파랑발견
                    res++;
                    cur = 2;
                }
                j++;
            }
        }
        cout << "#" << test_case << " " << res << endl;

    }
    return 0;
}

 

반응형

'algo' 카테고리의 다른 글

SWEA(SW Expert Academy) string C++  (0) 2021.09.17
SW Expert Academy 균형점 C++  (0) 2021.09.15
samsung sw academy 최대상금 문제 C++  (0) 2021.09.15