티스토리 뷰
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | /* 왼손 시작 *, 오른손 시작 #, number : 0~9 1, 4, 7 은 무조건 왼손 3, 6, 9 는 무조건 오른손 두 손가락에서의 키패드 거리가 같다면 hand 쪽으로 누른다. */ public class Level1_키패드누르기 { static int leftPosition = 10; static int rightPosition = 12; static final char LEFT = 'L'; static final char RIGHT = 'R'; static String hand = ""; public static String solution(int[] numbers, String s) { StringBuilder sb = new StringBuilder(); hand = s; for (int number : numbers) { sb.append(getAnswer(number)); } return sb.toString(); } private static char getAnswer(int number) { if (number == 1 || number == 4 || number == 7) { leftPosition = number; return LEFT; } if (number == 3 || number == 6 || number == 9) { rightPosition = number; return RIGHT; } // 2, 5, 8, 0 일때는 leftPosition, rightPosition 을 비교해야함 int leftDistance = getDistance(number, leftPosition); int rightDistance = getDistance(number, rightPosition); return getHand(leftDistance - rightDistance, number); } private static int getDistance(int number, int position) { position = position == 0 ? 11 : position; number = number == 0 ? 11 : number; int curX = (position - 1) / 3; int curY = (position - 1) % 3; int targetX = number / 3; int targetY = 1; return Math.abs(curX - targetX) + Math.abs(curY - targetY); } private static char getHand(int distance, int number) { if (distance < 0) { leftPosition = number; return LEFT; } else if (distance > 0) { rightPosition = number; return RIGHT; } // 어느손인지 비교 if (hand.equals("left")) { leftPosition = number; return LEFT; } else { rightPosition = number; return RIGHT; } } public static void main(String[] args) { int[] numbers = {7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2}; String hand = "left"; System.out.println(solution(numbers, hand)); } } | cs |
'PS > programmers' 카테고리의 다른 글
Level1) 신규아이디추천 (0) | 2021.04.29 |
---|---|
Level1) 3진법 뒤집기 (0) | 2021.04.28 |
Level1) 다트게임 (0) | 2021.04.27 |
Level1) 비밀지도 (0) | 2021.03.17 |
Level1) 실패율 (0) | 2021.03.16 |
링크
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 킹수빈닷컴
- REST API
- JPA 연관관계 매핑
- 김영한 JPA
- js api
- HTTP 완벽가이드
- JS 딥다이브
- GCP
- 백기선 스터디
- js array
- 백준
- 이펙티브자바 스터디
- 드림코딩
- java
- Spring Security
- 프로그래머스 SQL
- 이펙티브자바
- HTTP 완벽 가이드
- ㅇㄷㅇㅈ
- 프로그래머스
- 모던자바스크립트
- 이펙티브자바 아이템60
- 김영한 http
- 패스트캠퍼스 컴퓨터공학 완주반
- 이펙티브자바 아이템59
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- http
- js promise
- dreamcoding
- BOJ
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함