상세 컨텐츠

본문 제목

2020 카카오 인턴십 : 키패드 누르기 (Swift)

Swift알고리즘

by 앱등개발자IOS 2022. 6. 18. 21:50

본문

생각보다 구현하는데 많은 자료형으로 데이터를 만들어줘야하는 문제였다.

문제의 해결법을 생각해내는 것은 어렵지 않은 편의 문제였다.

 

문제 알고리즘을 간단하게 설명하자면, 

 

- 먼저 typealias로 Point라는 튜플을 만들어줬다. 

좌표를 나타내는 원시(?) 구조체 와 같은 친구라고 생각하면 된다.. 

 

numbers의 원소를 하나하나 for문으로 접근하면서,

 

(1)- 1,4,7 / 3,6,9와 같이 눌러야 할 손이 정해진 버튼이라면 결과 문자열인 result에 "L"혹은 "R"을 이어붙이고, 다음 판단을 위해 마지막으로 위치한 왼손 혹은 오른손의 위치를 now_left/now_right에 갱신해준다.

(2) - 2,5,8,0 중 하나, 즉 왼손/오른손 어떤 손으로 눌러야할지 판단이 필요한 위치라면 

dist()라는 두 Point사이 맨해튼거리를 return해주는 함수로 거리를 구하고,

왼손으로 가야하면, result에 "L"을 이어붙이고, now_left를 갱신시켜주는 식으로진행하였다. 

관련글 더보기