티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/67256
코딩테스트 연습 - 키패드 누르기
[1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL"
programmers.co.kr
2020 카카오 인턴십
|
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
48
49
50
51
52
|
class Solution {
int[] right = {3, 2};
int[] left = {3, 0};
String handed;
int[][] pad = {
{3, 1}, // 0
{0, 0}, // 1
{0, 1},
{0, 2},
{1, 0},
{1, 1},
{1, 2},
{2, 0},
{2, 1},
{2, 2} // 9
};
public String solution(int[] numbers, String hand) {
StringBuilder answer = new StringBuilder();
handed = hand.toUpperCase().charAt(0)+"";
for(int i=0; i<numbers.length; i++) {
String tmp = checkHand(numbers[i]);
answer.append(tmp);
moveHand(numbers[i], tmp);
}
return answer.toString();
}
// 어느 손으로 누를지 확인 String checkHand(int num) {
if(num==0 || num%3==2) {
int r = Math.abs(right[0] - pad[num][0]) + Math.abs(right[1] - pad[num][1]);
int l = Math.abs(left[0] - pad[num][0]) + Math.abs(left[1] - pad[num][1]);
if(r-l>0) return "L";
else if(r-l<0) return "R";
else return handed;
} else if(num%3==1) return "L";
else return "R";
}
// 손 옮기기 void moveHand(int num, String h) {
if(h.equals("R")) {
right = pad[num];
} else {
left = pad[num];
}
}
}
|
cs |
'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [JAVA] 프로그래머스 짝지어 제거하기 (0) | 2021.12.23 |
|---|---|
| [JAVA] 프로그래머스 신규 아이디 추천 (0) | 2021.12.17 |
| [JAVA] 프로그래머스 숫자 문자열과 영단어 (0) | 2021.12.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 2529
- 신규아이디추천
- 제네릭
- 재귀
- 하노이 탑
- Regex
- 4796
- 게리맨더링
- 11659
- 구간 합 구하기
- generic
- 와일드카드
- 디자인 패턴
- 11729
- 조합
- Wrapper Class
- OOP
- CS
- gof
- BFS
- Stack
- java
- 순열
- 프로그래머스
- 15686
- 백트래킹
- 래퍼 클래스
- recursion
- 알고리즘
- 백준
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함