본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다
문제
저작권 문제가 될 수 있어 문제는 삭제합니다.
풀이 코드
let input = "a1"
let startArr = input.map{String($0)}
let moves = [[1,2],[-1,2],[1,-2],[-1,-2],[-2,-1],[-2,1],[2,-1],[2,1]]
let chars = ["a","b","c","d","e","f","g","h"]
let nums = [1,2,3,4,5,6,7,8]
let c = nums.firstIndex(of: Int(startArr[1])!)
let s = chars.firstIndex(of: startArr[0])
var count = 0
let startXY = [c!,s!]
for i in 0..<moves.count {
let nextRow = startXY[0] + moves[i][0]
let nextColumn = startXY[1] + moves[i][1]
if nextRow >= 0 && nextRow <= 7 && nextColumn >= 0 && nextColumn <= 7 {
count += 1
}
}
print(count)
문제 풀이
1. 입력받은 'a1'을 ["a", "1"]로 쪼개준다
2. 상,하,좌,우로 이동할 경로 좌표를 moves 배열에 선언
3. "a"의 좌표값과 "1"의 좌표값을 chars, nums 배열에서 찾아 startXY에 배열로 저장
4. moves 배열 수 만큼 반복하면서 이동할 좌표값을 계산하고 계산한 좌표값이 범위안에 있는지 확인한다.
'Algorithm > 이코테 문제풀이' 카테고리의 다른 글
| DFS/BFS - 음료수 얼려먹기(Swift) (0) | 2022.08.09 |
|---|---|
| 구현 - 게임 개발(Swift) (0) | 2022.06.11 |
| 구현 - 시각(Swift) (0) | 2022.06.10 |
| 구현 - 상하좌우(Swift) (0) | 2022.06.10 |
| 그리디 - 1이 될 때까지(Swift) (0) | 2022.06.10 |