1236_성지키기
본문 바로가기
알고리즘 최종 (단계별)/0.init

1236_성지키기

by KyeongMin 2023. 6. 16.
728x90
반응형
  • 문제 링크
  • https://www.acmicpc.net/problem/1236
  • 문제 분석
    • 모든 행과 모든 열에 한명 이상의 경비원 있으면 좋겠음
      • x는 경비원이 있는 칸
  • 문제 해결 과정
    • x가 없는 행과 열에서 경비원이 한명이라도 없는 것에서 큰값을 구한다면 그것이 답이됨
  • 소스 코드
#include<stdio.h>
#include<iostream>
using namespace std;
int rowDirection(char board[54][54], int y, int x) {
  int cnt = 0;
  for (int i = 0; i < y; i++) {
    int xCheck = 0;
    for (int j = 0; j < x; j++) {
      if (board[i][j] == 'X') {
        xCheck = -1;
        break;
      }
    }
    if (xCheck != -1)
      cnt++;
  }
  return cnt;
}
int colDirection(char board[54][54], int y, int x) {
  int cnt = 0;
  for (int j = 0; j < x; j++) {
    int xCheck = 0;
    for (int i = 0; i < y; i++) {
​
      if (board[i][j] == 'X') {
        xCheck = -1;
​
        break;
      }
    }
    if (xCheck != -1)
      cnt++;
  }
  return cnt;
}
int main(void) {
  int N, M;
  cin >> N >> M;
 az
  char board[54][54];
  for (int i = 0; i < N; i++)
    cin >> board[i];
​
  int rowNumber = rowDirection(board, N, M);
  int colNumber = colDirection(board, N, M);
  if (rowNumber >= colNumber) {
    cout << rowNumber << "\\n";
  }
  else {
    cout << colNumber << "\\n";
  }
}
  • 그냥 각 라인의 비어있는 공간의 갯수를 세고 큰값을 출력하면됨
728x90
반응형

'알고리즘 최종 (단계별) > 0.init' 카테고리의 다른 글

9935_문자열폭발  (0) 2023.06.20
1181_단어정렬  (0) 2023.06.12
백준 1076 저항  (0) 2023.06.11

댓글