https://school.programmers.co.kr/learn/courses/30/lessons/67256#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
자꾸 오류난 이유:
두 점 사이의 거리를 좌표값의 차이의 절댓값을 더해 구했어야 하는데,
내가 두 점 사이의 거리를 좌표값의 차이를 제곱해 더해줘버려서
function solution(numbers, hand)
{
var lorR = '';
var lastL = 10;
var lastR = 12;
var distanceL = 0;
var distanceR = 0;
for (i=0; i<numbers.length; i++)
{
if ( (numbers[i]==1) || (numbers[i]==4) || (numbers[i]==7) )
{
lorR += 'L';
lastL=numbers[i];
}
// 2. lorR애 L 더하고 lastL값을 number[i] 로 바꿔준다
else if ( (numbers[i]==3) || (numbers[i]==6) || (numbers[i]==9) )
{
lorR += 'R';
lastR=numbers[i];
}
// 3. lorR에 R 더하고 lastR값을 number[i] 로 바꿔준다
else if ( (numbers[i]==2) || (numbers[i]==5) || (numbers[i]==8) )
{
distanceL = Math.abs((Math.floor((lastL-1)/3)-Math.floor((numbers[i]-1)/3)))+Math.abs(((lastL-1)%3-(numbers[i]-1)%3));
distanceR = Math.abs((Math.floor((lastR-1)/3)-Math.floor((numbers[i]-1)/3)))+Math.abs(((lastR-1)%3-(numbers[i]-1)%3));
if ( distanceL < distanceR)
{
lorR += 'L';
lastL=numbers[i];
}
// 4. if (numbers[i]와 lastL값이 더 가깝다) {lorR += 'L'; lastL=numbers[i];}
if ( distanceL > distanceR)
{
lorR += 'R';
lastR = numbers[i];
}
// 4. if (numbers[i]와 lastR값이 더 가깝다) {lorR += 'R'; lastR=numbers[i];}
if (distanceL == distanceR)
{
if (hand == 'right')
{
lorR += 'R';
lastR = numbers[i];
}
else
{
lorR += 'L';
lastL = numbers[i];
}
}
//4-1 거리가 같다면
}
else if (numbers[i]==0)
{
distanceL = Math.abs(Math.floor((lastL-1)/3)-3)+Math.abs((lastL-1)%3-1);
distanceR = Math.abs(Math.floor((lastR-1)/3)-3)+Math.abs((lastR-1)%3-1);
if ( distanceL < distanceR)
{
lorR += 'L';
lastL=11;
}
// 4. if (numbers[i]와 lastL값이 더 가깝다) {lorR += 'L'; lastL=numbers[i];}
if ( distanceL > distanceR)
{
lorR += 'R';
lastR = 11;
}
// 4. if (numbers[i]와 lastR값이 더 가깝다) {lorR += 'R'; lastR=numbers[i];}
if (distanceL == distanceR)
{
if (hand == 'right')
{
lorR += 'R';
lastR = 11;
}
else if (hand == 'left')
{
lorR += 'L';
lastL = 11;
}
}
//4-1 거리가 같다면
}
}
return lorR;
}
'코딩테스트 > LV. 1' 카테고리의 다른 글
LV1 :: 크기가 작은 문자열 (0) | 2023.10.08 |
---|---|
LV. 1 :: [1차] 비밀지도 (0) | 2023.02.01 |
LV. 1 :: 다트 게임 (1) | 2023.02.01 |
LV. 1 :: 폰켓몬 (0) | 2023.02.01 |
LV. 1 :: 예산 (0) | 2023.01.31 |
댓글