https://school.programmers.co.kr/learn/courses/30/lessons/17682
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(dartResult)
{
var arr = [];
var temp=0;
for (i=0; i<dartResult.length; i++)
{
if(dartResult[i]==1) // 원소가 1이면
{//뒤에거 0이면 temp에 10넣고 뒤에꺼 0아니면 temp에 1넣음
if(dartResult[i+1]==0) temp=10;
else temp=1;
}
else if( (dartResult[i]>=2) && (dartResult[i]<=9) ) // 원소가 2,3,4,5,6,7,8,9 면
{// temp에 dartResult[i]넣음
temp = dartResult[i];
}
else if(dartResult[i]=='S') // 원소가 S면
{ //temp**1함 temp를 arr에 push하고 temp를 0으로 만듬
temp = temp**1;
arr.push(temp);
temp=0;
}
else if(dartResult[i]=='D') // 원소가 D면
{ //temp**2함 temp를 arr에 push하고 temp를 0으로 만듬
temp = temp**2;
arr.push(temp);
temp=0;
}
else if(dartResult[i]=='T') // 원소가 T면
{ //temp**3함 temp를 arr에 push하고 temp를 0으로 만듬
temp = temp**3;
arr.push(temp);
temp=0;
}
else if(dartResult[i]=='#') // # 나오면
{ //arr의 마지막원소를 -1 곱해준다음에 그걸로 바꿔줌
arr.splice(arr.length-1, 1, arr[arr.length-1]*(-1));
}
else if(dartResult[i]=='*') // * 나오면
{
arr.splice(arr.length-1, 1, arr[arr.length-1]*2);
// 일단마지막원소를 2배해줌
if(arr.length!==1)
{ // arr의길이가 1이 아니면 arr의 마지막 전 원소를 2배해줌
arr.splice(arr.length-2, 1, arr[arr.length-2]*2);
}
}
}
var sum=0;
for(i=0; i<arr.length; i++)
{
sum += arr[i];
}
return sum;
}
'코딩테스트 > LV. 1' 카테고리의 다른 글
LV. 1 :: [1차] 비밀지도 (0) | 2023.02.01 |
---|---|
LV. 1 :: 키패드 누르기 (0) | 2023.02.01 |
LV. 1 :: 폰켓몬 (0) | 2023.02.01 |
LV. 1 :: 예산 (0) | 2023.01.31 |
LV. 1 :: K번째 수 (0) | 2023.01.31 |
댓글