반응형
https://school.programmers.co.kr/learn/courses/30/lessons/67256
class Solution {
public String solution(int[] numbers, String hand) {
String answer = "";
// 초기 엄지손가락 위치 설정 *(0,3), #(2,3)
int lx = 0;
int ly = 3;
int rx = 2;
int ry = 3;
for (int i=0; i<numbers.length; i++) {
switch (numbers[i]) {
// 왼쪽 엄지손가락
case 1, 4, 7:
answer += "L";
lx = 0;
ly = numbers[i] / 3;
break;
// 오른쪽 엄지손가락
case 3, 6, 9:
answer += "R";
rx = 2;
ry = (numbers[i] / 3) - 1;
break;
case 0, 2, 5, 8:
int x = 1;
int y = 0;
if (numbers[i] == 0) {
y = 3;
} else {
y = numbers[i] / 3;
}
int chklx = Math.abs(lx - x);
int chkly = Math.abs(ly - y);
int chkrx = Math.abs(rx - x);
int chkry = Math.abs(ry - y);
// 왼쪽 엄지손가락이 더 가까움
if (chklx + chkly < chkrx + chkry) {
answer += "L";
lx = x;
ly = y;
// 오른쪽 엄지손가락이 더 가까움
} else if (chklx + chkly > chkrx + chkry) {
answer += "R";
rx = x;
ry = y;
} else if (chklx + chkly == chkrx + chkry) {
if (hand.equals("right")) {
answer += "R";
rx = x;
ry = y;
} else {
answer += "L";
lx = x;
ly = y;
}
}
break;
}
}
return answer;
}
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]JAVA - Level 2. 문자열 압축 (0) | 2022.04.17 |
---|---|
[프로그래머스]JAVA - Level 2. 오픈채팅방 (0) | 2022.04.11 |
[프로그래머스]JAVA - Level 1. 완주하지 못한 선수 (0) | 2022.04.08 |
[프로그래머스]JAVA - Level 1. 비밀지도 (0) | 2022.04.07 |
[프로그래머스]JAVA - Level 1. K번째 수 (0) | 2022.04.06 |