https://school.programmers.co.kr/learn/courses/30/lessons/92345
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#include <string>
#include <vector>
using namespace std;
using vi = vector<int>;
using vvi = vector<vi>;
int dir[] = { -1, 0, 1, 0, -1 };
vvi board;
int f(vi cur, vi next) {
int cy = cur[0], cx = cur[1];
if (board[cy][cx] == 0)
return 0;
int N = board.size(), M = board[0].size();
int result = 0;
for (int i = 0; i < 4; ++i) {
cur[0] = cy + dir[i];
cur[1] = cx + dir[i + 1];
if (cur[0] < 0 || cur[0] >= N || cur[1] < 0 || cur[1] >= M) continue;
if (board[cur[0]][cur[1]] == 0) continue;
board[cy][cx] = 0;
int r = f(next, cur) + 1;
board[cy][cx] = 1;
if (r % 2) {
if (result % 2) result = min(result, r);
else result = r;
}
else {
if ((result % 2) == 0) result = max(result, r);
}
}
return result;
}
int solution(vector<vector<int>> brd, vector<int> aloc, vector<int> bloc) {
board = brd;
return f(aloc, bloc);
}
'알고리즘 > programmers' 카테고리의 다른 글
2022 KAKAO TECH INTERNSHIP / 코딩 테스트 공부 (0) | 2022.10.10 |
---|---|
2022 KAKAO BLIND RECRUITMENT / 양궁대회 (0) | 2022.10.03 |
2022 KAKAO BLIND RECRUITMENT / 파괴되지 않은 건물 (0) | 2022.10.03 |
2022 KAKAO BLIND RECRUITMENT / 양과 늑대 (0) | 2022.10.03 |
프로그래머스 - 행렬 테두리 회전하기 (0) | 2021.10.09 |