https://leetcode.com/problems/valid-sudoku/description/
아래와 같은 sudoku 룰 이 있을 때, 이 rule에 대해 주어진 입력이 유효한지 판단하라.
2차원 array에 대한 coding ability test.
별다른 함정은 없는 문제.
코드
더보기
bool isValidSudoku(vector<vector<char>>& board)
{
const int W = 9;
const int H = 9;
set<char> sBuff;
// check row.
for (auto x = 0; x < W; ++x)
{
sBuff.clear();
for (auto y = 0; y < H; ++y)
{
char cur = board[y][x];
if (cur == '.') continue;
if (sBuff.find(cur) != sBuff.end())
return false;
sBuff.insert(cur);
}
}
// check col.
for (auto y = 0; y < H; ++y)
{
sBuff.clear();
for (auto x = 0; x < W; ++x)
{
char cur = board[y][x];
if (cur == '.') continue;
if (sBuff.find(cur) != sBuff.end())
return false;
sBuff.insert(cur);
}
}
// check 3x3
for (auto y = 0; y < H; y+=3)
{
for (auto x = 0; x < W; x+=3)
{
sBuff.clear();
for (auto i = 0; i < 9; ++i)
{
int iy = y + i/3;
int ix = x + (i % 3);
char cur = board[iy][ix];
if (cur == '.') continue;
if (sBuff.find(cur) != sBuff.end())
return false;
sBuff.insert(cur);
}
}
}
return true;
}
결과.
'Leetcode > NeetCode' 카테고리의 다른 글
[TwoPointers][Easy] 125. Valid Palindrome (0) | 2024.07.08 |
---|---|
[ArraysHasing][Medium] 128. Longest Consecutive Sequence (0) | 2024.07.08 |
[ArraysHashing][Medium] 238. Product of Array Except Self (0) | 2024.07.08 |
[ArraysString][Medium] 271. Encode and Decode String (0) | 2024.07.08 |
[ArraysHashing][Medium] 347. Top K Frequent Elements (0) | 2024.07.07 |