-
배열_LeetCode_Queens That Can Attack the King알고리즘/알고리즘 문제풀이 2021. 8. 6. 19:43
https://leetcode.com/problems/queens-that-can-attack-the-king/
접근 방법
1. queens.forEach()를 사용하여 왕의 가로 세로 대각선에 존재하는 지 검사하려고 함.
2. 가로와 세로를 코딩 한 이후 대각선을 검사하기 어렵다는 것을 깨닳음.
3. 머리를 아무리 싸매도 해결되지 않아, 이미 푼 선구자의 코드에서 힌트를 얻어 진행
4. 힌트 : direction: [Int]를 선언, x, y 방향으로 증감을 반복하여 queens의 여부를 확인
코드
Runtime: 12 ms, faster than 72.73% of Swift online submissions for Queens That Can Attack the King.
Memory Usage: 14 MB, less than 63.64% of Swift online submissions for Queens That Can Attack the King.
더보기class Solution { func queensAttacktheKing(_ queens: [[Int]], _ king: [Int]) -> [[Int]] { var sol: [[Int]] = [] let directions = [-1, 0 ,1] for dx in directions { for dy in directions { var x = king[0] var y = king[1] while x >= 0 && x < 8 && y >= 0 && y < 8 { if dx == 0 && dy == 0 { break } x += dx y += dy if queens.contains([x,y]) { sol.append([x,y]) break } } } } return sol } }
'알고리즘 > 알고리즘 문제풀이' 카테고리의 다른 글
해쉬_LeetCode_top-k-frequent-elements (0) 2021.08.11 정렬_LeetCode_minimize-maximum-pair-sum-in-array (0) 2021.08.09 DFS/BFS_LeetCode_keys-and-rooms (0) 2021.08.04 그리디_프로그래머스_큰 수 만들기 (0) 2021.08.02 해쉬_LeetCode_Group-Anagrams (0) 2021.07.26