36. Valid Sudoku
💡に答える
var isValidSudoku = function (board) {
// Set으로 중복을 없애준다.
let set = new Set();
for (let i = 0; i < board.length; i++) {
for (let j = 0; j < board[0].length; j++) {
let item = board[i][j];
// .가 아닌 경우만 체크
if (item !== '.') {
// String과 index를 통해 unique한 값을 만들어줌
let num = item;
let x = item + 'in row' + j; // x축을 탐색하는 변수 x
let y = item + 'in column' + i; // y축을 탐색하는 변수 y
// 9개의 박스 중 몇 번째 박스에 있는지(0부터 시작하는 박스) 탐색하는 변수 z
let z = num + 'in box' + (Math.floor(i / 3) * 3 + Math.floor(j / 3));
// 중복을 허용하지 않는 set의 특성을 활용한 조건
if (set.has(x) || set.has(y) || set.has(z)) return false;
// nested loop을 돌면서 set에 계속 넣어준다.
set.add(x);
set.add(y);
set.add(z);
}
}
}
return true;
};
📝整理する
この解答は私の解答ではなく、別の学習者の解答を見て、私が理解している部分のコードを移しました.デフォルトでは、Setを使用して重複除外を行います.重複データがある場合は、
false
をreturn
に設定できます.いつも私たちの学習者たちの解答と説明に感謝しています!
修正、指摘を歓迎します!
質問リンク
https://leetcode.com/problems/valid-sudoku/
LeetCode GitHub
https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/submissions/
Reference
この問題について(36. Valid Sudoku), 我々は、より多くの情報をここで見つけました https://velog.io/@ken1204/36.-Valid-Sudokuテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol