Question
Given two cells on the standard chess board, determine whether they have the same color or not.
Example
For
cell1 = "A1"
andcell2 = "C3"
, the output should bechessBoardCellColor(cell1, cell2) = true
.For
cell1 = "A1"
andcell2 = "H3"
, the output should bechessBoardCellColor(cell1, cell2) = false
.
Input/Output
[execution time limit] 4 seconds (py3)
[input] string cell1
Guaranteed constraints:
cell1.length = 2
,'A' ≤ cell1[0] ≤ 'H'
,1 ≤ cell1[1] ≤ 8
.[input] string cell2
Guaranteed constraints:
cell2.length = 2
,'A' ≤ cell2[0] ≤ 'H'
,1 ≤ cell2[1] ≤ 8
.[output] boolean
true
if both cells have the same color,false
otherwise.
MY_ANSWER
def chessBoardCellColor(cell1, cell2):
if (ord(cell1[0]) + int(cell1[1]) + ord(cell2[0]) + int(cell2[1]))% 2 == 0:
return True
else:
return False
- 두 개의 점이 바둑판 검정색 부분에 있을 때 true 하나라도 하얀색 부분에 있을 경우는 false
- 패턴을 찾는 것이 중요하다.
cell1 = "A1"
일때 ord(A)는 65, A의 뒤에 값 1을 더하면 66 input에서 알파벳과 뒤의 숫자를 합치면 바둑판의 검정색 부분의 위치가 나오게 되고 이는 짝수임을 확인할 수 있다. 이를 이용하자!
Best_ANSWER
def chessBoardCellColor(cell1, cell2):
return (ord(cell1[0])+int(cell1[1])+ord(cell2[0])+int(cell2[1]))%2==0
- if 조건을 사용하지 않고 return값을 사용하면 깔끔하게 출력할 수 있다.