본문 바로가기

프로그래머스 코딩테스트 연습 Lv1

프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 키패드 누르기 ]

[문제 설명]

- 상하좌우 4가지 방향으로만 이동 가능. 이동 가능 거리는 1

- 1 4 7 을 입력할때는 왼손 엄지, 3 6 9 는 오른 엄지

- 2580 입력할때는 키패드에서 가까운 손. 거리 같으면 오른손잡이는 오른손 왼손잡이는 왼손

- 순서대로 누른 번호가 담긴 배열 numbers[], 왼손잡이 인지 오른손 잡이인지 나타내는 문자열 hand[] 

- 각 번호를 누른 엄지 손가락이 왼손인지 오른손인 지를 나타내는 문자열을 리턴하는 함수 작성.

 

[제한사항]

- numbers 배열크기는 1이상 1,000 이하

- numbers 배열 원소 값은 0 이상 9 이하

- hand[]는 "left" 또는 "right" 이다.

- 왼손 엄지는 L, 오른손 엄지는 R 리턴.

 

[입출력 예]

 

[내 풀이]

- 편의를 위해 그림 가져왔다. 어려운건 없을듯! 풀어봅시다

- 가장 큰 문제는 2580이 나왔을때 가장 가까운 손가락이 어디로 가냐 인데.. 좌표로 처리하면 될거 같은데 숫자를 좌표로 바꾸는게 더 걸리지 않을까 싶다.

약간 이렇게.. 물론 y 좌표가 음수지만 양수로 표현 했음 어차피 거리만 구할거니 괜찮음!

주의해야 될점은 

cal_distance 부분에서도 꼭 현재 왼손 오른손 위치를 갱신 시켜야 한다는 것이다.. 이것때매 엄청 애먹었음.

 

[공부]