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

[SWEA] 1979. 어디에 단어가 들어갈 수 있을까

by hyerann 2019. 4. 22.

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

 

SW Expert Academy

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

www.swexpertacademy.com

풀면서 break가 들어가야 할 자리에 continue를 써서 처음에 답이 계속 잘못 나왔다.

break랑 continue가 헷갈려서 이번 기회에 분기문 내용을 간단하게 정리해보았다.

분기문 알아보기 (return, break, continue)

#include <iostream>
#include <ios>
using namespace std;

int T, N, K, result, map[15][15];    // 1이 빈칸
void getInput();
int getAnswer();
void check(int nowY, int nowX);

int main() {
    cin.tie(0); ios::sync_with_stdio(0);
    cin >> T;
    for (int testCase = 1; testCase <= T; testCase++) {
        getInput();
        cout << '#' << testCase << ' ' << getAnswer() << "\n";
    }
    return 0;
}

void getInput() {
    cin >> N >> K;
    for (int y = 0; y < N; y++) {
        for (int x = 0; x < N; x++) {
            cin >> map[y][x];
        }
    }
}

int getAnswer() {
    result = 0;
    for (int y = 0; y < N; y++) {
        for (int x = 0; x < N; x++) {
            if (map[y][x]) check(y, x);
        }
    }
    return result;
}

void check(int nowY, int nowX) {
    int checkVer = 0, checkHor = 0;
    bool flagVer = false, flagHor = false;
    // 세로
    if (nowY == 0) flagVer = true;
    if (nowY > 0) if (!map[nowY - 1][nowX]) flagVer = true;
    if (flagVer) {
        for (int y = nowY; y < N; y++) {
            if (!map[y][nowX]) break;
            else checkVer++;
        }
        if (checkVer == K) {
            result++;
        }
    }
    // 가로
    if (nowX == 0) flagHor = true;
    if (nowX > 0) if (!map[nowY][nowX - 1]) flagHor = true;
    if (flagHor) {
        for (int x = nowX; x < N; x++) {
            if (!map[nowY][x]) break;
            else checkHor++;
        }
        if (checkHor == K) {
            result++;
        }
    }
}

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

[SWEA] 1288. 새로운 불면증 치료법  (0) 2019.04.25
[SWEA] 1859. 백만 장자 프로젝트  (0) 2019.04.24
[SWEA] 1954. 달팽이 숫자  (0) 2019.04.21
[SWEA] 1926. 간단한 369게임  (0) 2019.04.17
[SWEA] 2005. 파스칼의 삼각형  (0) 2019.04.17

댓글