KWiOS
KWiOS0101
KWiOS
  • 분류 전체보기 (108)
    • Algorithm (41)
      • 이코테 (14)
      • 이코테 문제풀이 (21)
      • 프로그래머스 (6)
    • CS (1)
      • 모두를 위한 컴퓨터 과학(CS50 2019) (0)
    • iOS (15)
    • Swift (36)
      • Swift문법 (32)
      • 기타 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 6

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
KWiOS

KWiOS0101

구현 - 왕실의 나이트(Swift)
Algorithm/이코테 문제풀이

구현 - 왕실의 나이트(Swift)

2022. 6. 11. 16:26
본 내용은 '이것이 취업을 위한 코딩테스트다 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
    'Algorithm/이코테 문제풀이' 카테고리의 다른 글
    • DFS/BFS - 음료수 얼려먹기(Swift)
    • 구현 - 게임 개발(Swift)
    • 구현 - 시각(Swift)
    • 구현 - 상하좌우(Swift)
    KWiOS
    KWiOS

    티스토리툴바