체스판에 여왕과 상대에 대한 두 개의 좌표가 있다고 가정합니다. 이 점은 각각 Q와 O입니다. 퀸이 상대를 공격할 수 있는지 여부를 확인해야 한다. 퀸은 같은 행, 같은 열, 대각선으로 공격할 수 있다는 것을 알고 있습니다.
따라서 입력이 Q =(1, 1) O =(4, 4)와 같으면 Q가 대각선으로 (4, 4) 갈 수 있으므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- Q의 x가 O의 x와 같으면
- 참 반환
- Q의 y가 O의 y와 같으면
- 참 반환
- Q의 |x - O의 x| Q의 y - O의 y|와 같으면
- 참 반환
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
def solve(Q, O): if Q[0] == O[0]: return True if Q[1] == O[1]: return True if abs(Q[0] - O[0]) == abs(Q[1] - O[1]): return True return False Q = (1, 1) O = (4, 4) print(solve(Q, O))
입력
(1, 1), (4, 4)
출력
True