본문 바로가기
알고리즘/SWEA

[SWEA] 1220. [S/W 문제해결 기본] 5일차 - Magnetic

by hyerann 2020. 2. 24.

아래로 내려가면서 N극을 이전에 만나고 S극을 만나면 교착상태가 +1이 됩니다.  → flagN으로 체크

단, S극이 연속이라면 하나의 교착상태이기 때문에 교착상태가 증가하지 않습니다.  → prev로 체크

 

#include <iostream>

using namespace std;

int length;
int map[100][100];

/*
 1: N극, 2: S극
 윗 부분 N극, 아랫 부분: S극
 */

int getResult() {
    int result = 0;
    
    for(int x=0; x<length; x++) {
        bool flagN = false;
        int prev = 0;
        for(int y=0; y<length; y++) {
            switch(map[y][x]) {
                case 0: //빈공간
                    break;
                case 1: //N
                    flagN = true;
                    prev = 1;
                    break;
                case 2: //S
                    if(prev != 2 && flagN) {
                        result++;
                    }
                    prev = 2;
                    break;
            }
        }
    }
    
    return result;
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    
    for(int tc=1; tc<=10; tc++) {
        cin >> length;
        for(int y=0; y<length; y++) {
            for(int x=0; x<length; x++) {
                cin >> map[y][x];
            }
        }
        
        cout << '#' << tc << ' ' << getResult() << '\n';
    }
    
    return 0;
}

 

 

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

 

SW Expert Academy

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

swexpertacademy.com

 

'알고리즘 > SWEA' 카테고리의 다른 글

[SWEA] 7087. 문제 제목 붙이기  (0) 2020.03.19
[SWEA] 8673. 코딩 토너먼트1  (0) 2020.03.17
[SWEA] 9317. 석찬이의 받아쓰기  (0) 2020.02.20
[SWEA] 8457. 알 덴테 스파게티  (0) 2020.02.17
[SWEA] 8888. 시험  (0) 2020.02.16

댓글