일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준 특정한 최단 경로
- spring mongodb switch
- java 백준 1509
- spring mongodb
- mongodb lookup
- 자바 1676
- javav 1676
- 전략 패턴이란
- 백준 연결요소 자바
- spring mongoTemplate switch
- kotiln const
- go
- java 파티
- kotiln const val
- spring mongoTemplate
- Java Call By Refernce
- ipfs bean
- java 팩토리얼 개수
- rabbitmq 싱글톤
- kotiln functional interface
- nodejs rabbitmq
- java 1238
- 자바 백준 팩토리얼 개수
- Spring ipfs
- 백준 2252 줄세우기
- 익명 객체 @transactional
- ipfs singletone
- 백준 1504 java
- java 1509
- 안정해시
Archives
- Today
- Total
공부 흔적남기기
프로그래머스 키패드 누르기 본문
728x90
반응형
import java.util.ArrayList;
class Solution {
public String solution(int[] numbers, String hand) {
String answer = "";
//arrayList 를 좋아해서 배열을 arrayList 로 바꿈
ArrayList<Integer> arrayList =new ArrayList<>();
for(int i =0; i<numbers.length; i++){
//0을 그대로 두면 처리할 수 가없음 그래서 순서에 맞게 11로 바꿔줌
if(numbers[i] == 0){
numbers[i] = 11;
}
arrayList.add(numbers[i]);
}
int number = 0;
//왼쪽은 *에서 시작하는데 수로 표현하면 10
int leftNow = 10;
//오른쪽은 #에서 시작하는데 수로 표현하면12
int rightNow = 12;
int leftDistance = 0;
int rightDistance = 0;
for(int i =0; i< arrayList.size(); i++){
number = arrayList.get(i);
//숫자가 1 4 7 이라면 왼쪽속이
if(number == 1 || number ==4 || number ==7){
answer += "L";
leftNow = number;
//숫자가 3 6 9 라면 오른손이
}else if(number == 3 || number ==6 || number ==9) {
answer += "R";
rightNow = number;
}//이 문제 여기까지는 아주 무난한 문제 2 5 8 11 처리할때 if 문으로 하면 너무 복잡 거리로 생각해면 할만함
else{
//세로를 움직때 3을 기준으로 움직인다고 생각했을때 이런식이 나올 수 있음
leftDistance = (Math.abs(number-leftNow))/3 + (Math.abs(number-leftNow))%3;
rightDistance = (Math.abs(number-rightNow))/3+ (Math.abs(number-rightNow))%3;
//길이가 같다면 hand에 따라 바뀜
if(leftDistance == rightDistance) {
if(hand.equals("right")) {
answer += "R";
rightNow = number;
}else {
answer += "L";
leftNow = number;
}
// 왼쪽이 더길다면 오른쪽으로 누르고
}else if(leftDistance > rightDistance) {
answer += "R";
rightNow = number;
//그렇지 않다면 왼쪽으로 누르고~
}else {
answer += "L";
leftNow = number;
}
}
}
return answer;
}
}
문제 : https://programmers.co.kr/learn/courses/30/lessons/67256
728x90
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
프로그래머스 크레인 인형뽑기 게임 (0) | 2022.01.17 |
---|---|
프로그래머스 [1차] 다트게임 (0) | 2022.01.17 |
프로그래머스 [1차] 비밀지도 (0) | 2022.01.17 |
프로그래머스 폰켓몬 (0) | 2022.01.17 |
프로그래머스 체육복 (0) | 2022.01.17 |