[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/67256
[풀이]
*을 10, #을 12로 인덱스 설정 후 풀이함.
[코드]
class Solution {
public String solution(int[] numbers, String hand) {
String answer = "";
int leftIndex = 10;
int rightIndex = 12;
for(int num : numbers){
if(num==1 || num==4 || num==7){
answer += "L";
leftIndex = num;
}else if(num==3 || num==6 || num==9){
answer += "R";
rightIndex = num;
}else{
int leftDis = getLength(leftIndex, num);
int rightDis = getLength(rightIndex, num);
if(leftDis < rightDis){
answer += "L";
leftIndex = num;
}
else if(leftDis > rightDis){
answer += "R";
rightIndex = num;
}
else{
if(hand.equals("left")){
answer += "L";
leftIndex = num;
}
else {
answer += "R";
rightIndex = num;
}
}
}
}
return answer;
}
public int getLength(int index, int num){
//0 -> 11로 치환
index = (index==0) ? 11 : index;
num = (num==0) ? 11 : num;
//좌표 구하기
int r = (index-1)/3;
int c = (index-1)%3;
int numR = (num-1)/3;
int numC = (num-1)%3;
return Math.abs(r-numR) + Math.abs(c-numC);
}
}
'알고리즘 공부 및 문제 풀이 > 프로그래머스(PRO)' 카테고리의 다른 글
[pro] 프로그래머스 level3 68646 풍선 터뜨리기 (Java) - 시뮬레이션 (0) | 2023.01.08 |
---|---|
[pro] 프로그래머스 level3 64062 징검다리 건너기 (Java) - 이분탐색 (0) | 2022.12.15 |
[pro] 프로그래머스 level3 67259 경주로 건설 (Java) - BFS (0) | 2022.12.14 |
[pro] 프로그래머스 level3 67258 보석 쇼핑 (Java) - 투포인터 (1) | 2022.12.14 |
[pro] 프로그래머스 level2 67257 수식 최대화 (Java) - 브루트포스, dfs (0) | 2022.12.14 |