입력받은 숫자들의 인덱스(숫자 -1)을 3으로 나누어서 위치를 판별하고 *과#만 따로 처리하면 될 것 같다는 생각을 했는데 가운데 줄의 숫자가 눌릴때 거리가 가까운 손으로 누르는 과정이 잘 떠오르지를 않는다.
인덱스와 값을 같이 사용하여 인덱스를 어떤 연산에 의해 거리를 구해보려 했는데 자세한 것들은 코딩 중에 막히는 부분에서 좀 더 찾아봐야겠다.
source : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.math/abs.html
다행히 수의 절댓값을 구해주는 메소드를 발견했다! 이걸 잘 활용하여 거리를 구하면 될 것 같다.
numbers
의 원소들을 빼서 인덱스를 이용하여 분류를 한다.L
이므로 answer
에 더해주고, 오른쪽 키패드를 누를때는 항상 R
이므로 answer
에 더해준다.key
를 11로 세팅한 뒤 계산을 한다.answer
에 더해준다.hand
에 따라 answer
에 더해준다.key
의 값을 절대값으로 구하고, 3으로 나눈 나머지와 몫을 더해주면 구할 수 있다. (이 부분은 답이 안나와서 인터넷 참고)answer
에 손을 저장할때 해당 손의 위치를 선택된 키패드의 위치로 바꿔준다.거리를 구하는 로직을 구하는게 너무 어려웠다. 좌표로 찾는 것이 가장 쉽게 떠오르지만 좌표로 계산한다는 점이 뭔가 마음에 들지 않았다. 결국 구글에 검색을 하다가 나와 같은 부분에서 막힌 개발자분의 포스트를 참고하여 단순 숫자 연산으로 해결할 수 있는 방법을 찾아서 적용하였다.
source : https://books-journies.tistory.com/87
테스트 합격!