전자공학 및 알고리즘

백준 1100 - 하얀 칸(C++) 본문

백준

백준 1100 - 하얀 칸(C++)

공대생의 잡다한 사전 2023. 5. 6. 23:26

문제 링크입니다. https://www.acmicpc.net/problem/1100

 

1100번: 하얀 칸

체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램

www.acmicpc.net

하얀 칸 위에 말이 몇개가 있는지 구하는 문제입니다.

흰색칸과 검은색 칸이 번갈아가면서 나타날 때, 흰색 칸 위에 말이 몇개가 위에 있는지 구하는 문제입니다.

1번, 3번, 5번.. 과 같이 홀수 줄에는 흰색 칸이 홀수번째 칸에 존재합니다.

2번, 4번, 6번.. 과 같이 짝수 줄에는 흰색 칸이 짝수번째 칸에 존재합니다.

 

이를 생각해 말이 어디 있는지 판별하면 됩니다.

 

자세한 것은 코드를 참고해주세요

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>
#define P pair<int, int>
#define F first
#define S second
#define INF 987654321

using namespace std;

char map[9][9];

int main(){
    cin.tie(0);
    cout.tie(0);
    int cnt = 0;
    for(int i = 1; i <= 8; i++){
        for(int j = 1; j <= 8; j++){
            cin >> map[i][j];
            if(i % 2 == 1){ //홀수 줄일 때는 홀수 칸이 흰색
                if(j % 2 == 1 && map[i][j] == 'F') cnt++; 
            }
            else{ // 짝수 줄일 때는 짝수 칸이 흰색
                if(j % 2 == 0 && map[i][j] == 'F') cnt++;
            }
        }
    }
    cout << cnt;
    return 0;
}

 

 

질문 및 조언은 댓글을 남겨주세요

'백준' 카테고리의 다른 글

백준 10824 - 네 수(C++)  (0) 2023.05.06
백준 10798 - 세로읽기(C++)  (0) 2023.05.06
백준 1032 - 명령 프롬프트(C++)  (0) 2023.05.06
백준 10988 - 팰린드롬인지 확인하기(C++)  (0) 2023.05.06
백준 11437 - LCA(C++)  (0) 2023.04.25