생각보다 구현하는데 많은 자료형으로 데이터를 만들어줘야하는 문제였다.
문제의 해결법을 생각해내는 것은 어렵지 않은 편의 문제였다.
문제 알고리즘을 간단하게 설명하자면,
- 먼저 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를 갱신시켜주는 식으로진행하였다.
2019 KAKAO BLIND RECRUITMENT : 실패율 (Swift) (0) | 2022.06.22 |
---|---|
프로그래머스 코딩테스트 연습문제 lv2: 가장 큰 정사각형 찾기 (Swift) (0) | 2022.06.21 |
2021 카카오 채용연계형 인턴십 : 숫자 문자열과 영단어 (0) | 2022.06.18 |
2021 Dev-Matching 웹 백엔드 : 로또의 최고 순위와 최저순위 (Swift) (0) | 2022.06.18 |
2022 KAKAO BLIND RECRUITMENT: 신고 결과 받기 (Swift) (0) | 2022.06.18 |