티스토리 뷰
정확도 40%
뭐가 문제일까..
import java.util.*;
class Solution {
public static String caculateLength(int number, String leftNow, String rightNow, String hand) {
String findNum = Integer.toString(number);
String result = "";
Xy numberPosition = new Xy();
Xy leftPosition = new Xy();
Xy rightPosition = new Xy();
int leftMinus = 0;
int rightMinus = 0;
//(1. 2) (0.0) (2.0)
String keyPad[][] = {
{"1", "2", "3"},
{"4", "5", "6"},
{"7", "8", "9"},
{"*", "0", "#"}
};
for(int i=0; i<keyPad.length; i++) {
for(int j=0; j<keyPad[0].length; j++) {
if(keyPad[i][j].equals(findNum)) {
numberPosition.x = i;
numberPosition.y = j;
} else if(keyPad[i][j].equals(leftNow)) {
leftPosition.x = i;
leftPosition.y = j;
} else if(keyPad[i][j].equals(rightNow)) {
rightPosition.x = i;
rightPosition.y = j;
}
}
}
leftMinus = Math.abs(numberPosition.x - leftPosition.x) + Math.abs(numberPosition.y - leftPosition.y);
rightMinus = Math.abs(numberPosition.x - rightPosition.x) + Math.abs(numberPosition.y - rightPosition.y);
if(rightMinus > leftMinus) {
result = "L";
} else if(leftMinus > rightMinus) {
result = "R";
} else if(leftMinus == rightMinus) {
if(hand.equals("right")) {
result = "R";
} else {
result = "L";
}
}
return result;
}
public String solution(int[] numbers, String hand) {
String answer = "";
String leftNow = "*";
String rightNow = "#";
StringBuffer buffer = new StringBuffer();
List<Integer> left = Arrays.asList(1, 4, 7);
List<Integer> right = Arrays.asList(3, 6, 9);
for(int number : numbers) {
if(left.contains(number)) {
leftNow = Integer.toString(number);
buffer.append("L");
} else if(right.contains(number)) {
rightNow = Integer.toString(number);
buffer.append("R");
} else {
String result = caculateLength(number, leftNow, rightNow, hand);
buffer.append(result);
if(result.equals("R")) {
rightNow = Integer.toString(number);
} else {
leftNow = Integer.toString(number);
}
}
}
answer = buffer.toString();
return answer;
}
}
class Xy {
int x;
int y;
}
'프로그래머스' 카테고리의 다른 글
[Level0] 최댓값 만들기 (1) (2) | 2022.12.09 |
---|---|
[Level1] 소수 만들기 JAV (0) | 2022.04.26 |
[Level1] 숫자 문자열과 영단어 (0) | 2022.02.06 |
[Level1] 신고 결과 받기 Java 저 세상 풀이 (0) | 2022.02.05 |
[Level1/JAVA] 신규 아이디 추천 (0) | 2022.01.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 운영체제
- EC2
- SpringGraphQL
- 트랜잭션격리성
- ci/cd
- 인덱스
- 파일업로드설정
- Oracle
- CodeDeploy
- 기술면접
- TCP
- 람다식
- ddl-auto
- Travis CI
- spring
- SpringSecurity
- level0
- N+1
- Til
- OS
- ORA-27125
- AWS
- nginx
- graphql
- JPA
- 트랜잭션
- Java
- 프로그래머스
- db
- 네이버클라우드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함