반응형
https://leetcode.com/problems/determine-color-of-a-chessboard-square/
구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1 indexing을 위해 9x9의 bool형 2차원 vector boards를 선언 해줍니다.2. boards의 색을 칠하기 위해 color를 선언해 white(true)로 초기화해줍니다.3. 2차원 for loop를 수행하며 9x9에 색을 칠해줍니다. row가 바뀔때는 가장 마지막 color의 반대로 다시 초기화해줍니다.
📔 풀이과정
각 좌표를 2차원 array 접근을 위한 좌표로 변환합니다.
1. 행을 뜻하는 r을 선언해 coordinates의 0번째는 alphabat이 므로 int형으로 변환해 1을 더한 값으로 저장합니다.
2. 열을 뜻하는 c를 선언해 coordinates의 1번째 값을 int로 변환해 저장합니다.
📔 정답 출력 | 반환
행번호가 아래에서 위로 올라갈 수록 늘어나므로 기존 행번호 방식과 반대입니다. 따라서 boards[9-r][c]값을 반환합니다.
📕 Code
📔 C++
#define white true;
class Solution {
public:
bool squareIsWhite(string coordinates) {
vector <vector<bool>> boards(9, vector<bool>(9, false));
bool color = white;
for(int i = 1; i <= 8; i++) {
for(int j = 1; j <= 8; j++) {
boards[i][j] = color;
color = !color;
}
color = !color;
}
int r = coordinates[0] - 'a' + 1;
int c = coordinates[1] - '0';
return boards[9-r][c];
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.