[HackerRank] Queen's Attack II
[문제 링크]
[입력]
int n: 보드의 가로 , 세로 길이
int k: 보드의 장애물의 개수
int r_q: 보드 내 퀸의 행의 위치
int c_q: 보드 내 퀸의 열의 위치
int obstacles[k][2]: 장애물의 위치를 담은 2차원 배열, 각 원소에는 [행,열] 로 존재함.
[출력]
int: 퀸이 공격할 수 있는 칸의 개수
[해결 아이디어]
퀸이 움직일 수 있는 방향은 상,하,좌,우,우상,우하,좌상,좌하 총 8개이다.
따라서 각 방향에 따라 퀸의 위치가 보드 밖을 나가지 않거나 장애물의 위치에 걸리지 않으면 결과값을 1씩 더한다.
[코드]
if n==0:
return 0
obstacles =set([tuple(item) for item in obstacles])
move_q=[(1,0),(-1,0),(0,1),(0,-1),(1,1),(-1,-1),(1,-1),(-1,1)]
count=0
for u,v in move_q:
cur=(r_q+u,c_q+v)
while 1<=cur[0]<=n and 1<=cur[1]<=n and cur not in obstacles:
cur=(cur[0]+u,cur[1]+v)
count+=1
return count
Author And Source
이 문제에 관하여([HackerRank] Queen's Attack II), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jongmin97/HackerRank-Queens-Attack-II저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)