250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- livedata
- Coroutines
- intent
- viewmodel
- tabbar
- 앱바
- TEST
- 테스트
- appbar
- binding
- 계측
- 앱
- Button
- drift
- Flutter
- 안드로이드
- textfield
- Kotlin
- DART
- Dialog
- scroll
- LifeCycle
- CustomScrollView
- android
- Navigation
- Compose
- activity
- data
- ScrollView
- textview
Archives
- Today
- Total
Study Record
[프로그래머스] Level2 - 카카오프렌즈 컬러링북 본문
728x90
#include <vector>
#include <stack>
using namespace std;
vector<int> solution(int m, int n, vector<vector<int>> picture) {
int number_of_area = 0;
int max_size_of_one_area = 0;
for (int i = 0; i < m; i++) {
for (int k = 0; k < n; k++) {
// 0 이면 패스
if (picture[i][k] == 0) continue;
else {
number_of_area++;
int size_of_area = 1;
int area_value = picture[i][k];
picture[i][k] = 0;
stack<pair<int, int>> area;
area.push(make_pair(i, k));
do {
int now_i = area.top().first;
int now_k = area.top().second;
area.pop();
// 상하좌우 탐색
if (now_i - 1 >= 0 && picture[now_i - 1][now_k] == area_value) {
// 위
area.push(make_pair(now_i - 1, now_k));
picture[now_i - 1][now_k] = 0;
size_of_area++;
}
if (now_i + 1 < m && picture[now_i + 1][now_k] == area_value) {
// 아래
area.push(make_pair(now_i + 1, now_k));
picture[now_i + 1][now_k] = 0;
size_of_area++;
}
if (now_k - 1 >= 0 && picture[now_i][now_k - 1] == area_value) {
// 왼쪽
area.push(make_pair(now_i, now_k - 1));
picture[now_i][now_k - 1] = 0;
size_of_area++;
}
if (now_k + 1 < n && picture[now_i][now_k + 1] == area_value) {
// 오른쪽
area.push(make_pair(now_i, now_k + 1));
picture[now_i][now_k + 1] = 0;
size_of_area++;
}
} while (!area.empty());
if (size_of_area > max_size_of_one_area) max_size_of_one_area = size_of_area;
}
}
}
vector<int> answer(2);
answer[0] = number_of_area;
answer[1] = max_size_of_one_area;
return answer;
}
728x90
'알고리즘' 카테고리의 다른 글
[프로그래머스] Level1 - 음양 더하기 / 내적 (0) | 2021.12.03 |
---|---|
[프로그래머스] Level1 - 없는 숫자 더하기 (0) | 2021.12.02 |
[프로그래머스] Level1 - 크레인 인형뽑기 게임 <스택> (0) | 2021.12.02 |
[프로그래머스] Level2 - 오픈채팅방 (0) | 2021.12.01 |
[프로그래머스] Level1 - 키패드 누르기 (0) | 2021.12.01 |