반응형
https://www.acmicpc.net/problem/1388
greedy로 푼 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
n행 m열을 선언 후 입력한 다음 이차원 배열 room에 n행 m열만큼 구조를 입력해줍니다. 체크 배열 ck도 선언해줍니다.
📔 풀이과정
0행 0열부터 시작해 체크가 안되어있으면 다음을 수행합니다.
1. 체크가 안된 위치가 i행 j열인 경우 ans++ 후 그 값을 변수 shape에 저장합니다.
2. shape이 '-'라면 '|'가 나오기 전까지 열을 끝까지 loop를 돌며 check해줍니다.
3. shape이 '|'라면 '-'가 나오기 전까지 행을 끝까지 loop를 돌며 check해줍니다.
📔 정답출력
ans를 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;
int n, m, ck[101][101], ans;
char room[101][101];
int main(){
cin >> n >> m;
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
cin >> room[i][j];
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(ck[i][j]) continue;
ans++;
ck[i][j] = 1;
char shape = room[i][j];
if(shape == '-'){
for(int k = j + 1; k < m; k++){
if(room[i][k] == '|') break;
ck[i][k] = 1;
}
}
else{
for(int k = i + 1; k < n; k++){
if(room[k][j] == '-') break;
ck[k][j] = 1;
}
}
}
}
cout << ans;
}
'Algorithm > Greedy' 카테고리의 다른 글
(C++) - 백준(BOJ) 16435 : 스네이크버드 (0) | 2022.03.31 |
---|---|
(C++) - 백준(BOJ) 9237 : 이장님 초대 (0) | 2022.03.29 |
(C++) - leetcode 2007번 : Find Original Array From Doubled Array (0) | 2021.09.29 |
(C++) - 백준(BOJ) 17521번 : Byte Coin (0) | 2021.09.25 |
(C++) - 백준(BOJ) 14916번 : 거스름돈 (0) | 2021.09.06 |