Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 서버 호스팅
- 세마포어와 뮤텍스의 차이
- 삼성 청년 SW 아카데미
- 프록시서버
- 세마포어와 뮤텍스
- 호스팅이란?
- 싸피
- 다익스트라
- Proxy Server
- 뮤텍스
- 싸피 합격
- 동기화
- 클라우드 서버
- Synchronization
- 최단 경로
- 뮤텍스란?
- 세마포어란?
- 다익스트라 알고리즘
- 웹 호스팅
- 플로이드 워셜
- Proxy
- 프록시
- 세마포어
- 플로이드 와샬
- 호스팅
- SSAFY
- 싸피 면접 후기
- floyd-warshall
- Dijkstra Algorithm
Archives
- Today
- Total
어제의 나보다 성장한 오늘의 나
[프로그래머스][2020 카카오 인턴십][자바스크립트] 키패드 누르기 본문
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
function solution(numbers, hand) {
var answer = '';
const leftPos = {x : 3, y : 0};
const rightPos = {x : 3, y : 2};
for(let num of numbers){
if(num%3 === 1) {
answer += 'L';
leftPos.y = 0;
leftPos.x = Math.floor(num / 3);
}
else if(num%3 === 0 && num !=0){
answer += 'R';
rightPos.y = 2;
rightPos.x = (num/3)-1;
}
else{
let numPos = {x : 0, y : 1}
if(num == 5) numPos.x = 1;
if(num == 8) numPos.x = 2;
if(num == 0) numPos.x = 3;
let le = Math.abs(leftPos.x - numPos.x) + Math.abs(leftPos.y - numPos.y);
let right = Math.abs(rightPos.x - numPos.x) + Math.abs(rightPos.y - numPos.y);
// 무슨 손가락을 누를지
if(le < right || (le == right && hand ==='left')) {
leftPos.x = numPos.x;
leftPos.y = numPos.y;
answer += 'L';
}
else if(right < le || (le == right && hand ==='right')) {
rightPos.x = numPos.x;
rightPos.y = numPos.y;
answer += 'R';
}
}
}
return answer;
}
정리
- 왼손과 오른손 엄지의 시작 좌표를 저장한다.
- 조건문으로 왼손과 오른손을 처리한다.
- 2,5,8,0 인 경우 해당 숫자에서 거리를 구하여 가장 가까운 손가락이 누르도록 하는데 여기서 거리가 같을 경우 왼손잡이인지 오른손잡이인지 체크한다.
- 손가락이 눌러질때마다 해당 손가락의 좌표를 최신화해준다.
'알고리즘 > 프로그래머스(Programmers)' 카테고리의 다른 글
[프로그래머스][Level3][자바] 가장 먼 노드 (0) | 2021.05.15 |
---|---|
[프로그래머스][찾아라 프로그래밍 마에스터][자바] 게임 맵 최단거리 (0) | 2021.05.10 |
[프로그래머스][2018 KAKAO BLIND RECRUITMENT][자바스크립트] 프렌즈4블록 (0) | 2021.05.06 |
[프로그래머스][2019 KAKAO BLIND RECRUITMENT][자바스크립트] 실패율 (0) | 2021.05.05 |
[프로그래머스][2020 KAKAO BLIND RECRUITMENT][자바스크립트] 괄호 변환 (0) | 2021.05.04 |
Comments