반응형
키패드를 왼손으로 누를지 오른손으로 누를지 결정하는 문제.
왼쪽의 1,4,7은 왼손으로 누름
오른쪽의 3,6,9는 오른손으로 누름.
가운데 2,5,8,0은 현재의 왼손 , 오른손의 위치를 비교하여 가까운 손가락으로 누름
거리가 같다면 오른손잡이인지 왼손잡이인지를 확인하여 누름.
2,5,8,0과 손의 위치를 재기위하여 *,0,# 을 각각 숫자 10,11,12로 치환하였다.
이렇게 하면 현재 손의 위치와 2,5,8,0과의 거리는
두 숫자의 차이를 3으로나눈 몫+ 나머지가 된다.
재밌는 문제였다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
class Solution {
public String solution(int[] numbers, String hand) {
String answer = "";
int left =10;
int right = 12;
int leftDistance = 0;
int rightDistance = 0;
for (int num: numbers){
if(num==0){
num=11;
}
if(num==1|num==4|num==7){
left = num;
answer += "L";
}
if(num==3|num==6|num==9){
right = num;
answer += "R";
}
if(num==2|num==5|num==8|num==11){
leftDistance = ((Math.abs(num-left))/3) +((Math.abs(num-left))%3);
rightDistance = ((Math.abs(num-right))/3) +((Math.abs(num-right))%3);
if(leftDistance<rightDistance){
answer += "L";
left = num;
}else if(leftDistance>rightDistance){
answer += "R";
right = num;
}else if(leftDistance==rightDistance){
answer += hand.toUpperCase().charAt(0);
if(hand.equals("right")){
right = num;
}
if(hand.equals("left")){
left = num;
}
}
}
}
return answer;
}
}
|
cs |
반응형
'개발 > 코딩' 카테고리의 다른 글
[프로그래밍] 프로그래머스 예제문제 풀어보기 <크레인인형뽑기> (실패 -> 성공) (0) | 2022.03.24 |
---|---|
[JAVA] ORACLE에서 제공하는 API docs를 참고하자 (0) | 2022.03.24 |
[프로그래밍] 프로그래머스 예제문제 풀어보기 <오픈채팅방> (성공) (0) | 2022.03.20 |
[프로그래밍] 프로그래머스 예제문제 풀어보기 <오픈채팅방> (실패) (0) | 2022.03.20 |
[프로그래밍] 프로그래머스 예제문제 풀어보기 <문자열 압축> (성공) (0) | 2022.03.18 |