카카오 : 키패드 누르기 — 파이썬: 2020 카카오 인턴십 문제 풀이
2020 카카오 인턴십
- 키패드 누르기
- 수식 최대화
- 보석 쇼핑
- 경주로 건설
공식해설
문제 링크
1. 문제분해
- 전체문제
input : 눌러야 하는 핸드폰 번호 배열, 왼손잡이 여부
output : 누른 손 배열 - 눌러야 하는 핸드폰 번호마다
input : 눌러야 하는 핸드폰 번호, 왼쪽 손, 오른쪽 손 위치, 왼손잡이 여부
output : 누른 손 - 2,5,8,0 판별 함수 따로 필요
input : 눌러야 하는 번호, 왼쪽 손, 오른쪽 손 위치, 키패드 정보, 왼손잡이 여부
output : 누른 손, 바뀐 왼쪽 손, 오른쪽 손 위치
2. 패턴인식, 자료 표현
- 키패드
→ 2,5,8,0 을 판별할 때, 위치 값 필요
→ 2차원 배열로 2차원 키패드의 위치값 계산 - [1,4,7], [3, 6, 9] 는 왼쪽, 오른쪽으로 지정
3. 패턴분석, 일반화
- 눌러야 하는 핸드폰 번호마다 누른 손 판별 로직 실행
- [1,4,7], [3,6,9], [2,5,8,0]
→ 키 패드의 번호 포함 그룹에 따라 로직이 달라짐 (분기) - [2,5,8,0] 그룹의 경우, 누른 손을 판별하려면 거리를 계산해야 함