티스토리 뷰

Codesignal

code signal - 29. chessBoardCellColor

터보건 2020. 2. 23. 20:28

Question

Given two cells on the standard chess board, determine whether they have the same color or not.


Example

  • For cell1 = "A1" and cell2 = "C3", the output should be chessBoardCellColor(cell1, cell2) = true.

    image

  • For cell1 = "A1" and cell2 = "H3", the output should be chessBoardCellColor(cell1, cell2) = false.

    image


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값을 사용하면 깔끔하게 출력할 수 있다.

 

'Codesignal' 카테고리의 다른 글

code signal - 32. absoluteValuesSumMinimization  (0) 2020.03.01
code signal - 31. depositProfit  (0) 2020.03.01
code signal - 28. alphabeticShift  (0) 2020.02.23
code signal - 27. variableName  (0) 2020.02.23
code signal - 26. evenDigitsOnly  (0) 2020.02.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함