일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Javascript
- React 고급 안내서
- React API 참고서
- react-helmet
- Next13
- Nextjs React 18
- background: url
- context
- codingtest
- Nextjs
- getUTCDate
- React 공식문서
- Render Props
- React 18
- React18
- React 고급안내서
- CSS
- 고급안내서
- Babel
- react
- background tab
- hook
- next13 head
- RTK Query
- react hook
- background setInterval
- background setttimeout
- React 18 Nextjs
- notFound()
- Programmers
Archives
- Today
- Total
akjfal
[Programmers]다트게임 본문
// 3번
// 0~10
// S D T ^1 ^2 ^3
// * 해당점수와 이전 점수를 각 2배
// # 해당점수는 마이너스
// *가 맨처음 나올시 *의 점수만 2배
// 다른 스타상과 중첩 가능
// *#가 중첩시 2배 마이너스
function solution(dartResult) {
var answer = 0;
let idx = 0;
let arr = dartResult.split(/[0-9(10)]/).filter(s => s !== "");
let arr2 = dartResult.split(/[^0-9(10)]/).filter(s => s !== "");
let arr3 = dartResult.match(/(\d{1,})(S|D|T)(\*|#)?/g);
let arr4 = arr3[0].match(/(^\d{1,})(S|D|T)(\*|#)?/);
console.log(arr3);
console.log(arr4);
arr.forEach((value, idx) => {
for(let i = 0; i < value.length; i++){
let num = parseInt(arr2[idx]);
let s = value.charAt(i);
if(s === "*"){
if(idx === 0){
arr2[idx] = star(num);
}else{
arr2[idx] = star(num);
arr2[idx-1] = star(parseInt(arr2[idx-1]));
}
}else if(s === "#"){
arr2[idx] = sharp(num);
}else{
arr2[idx] = involution(num, s);
}
}
})
// console.log(arr2);
answer = arr2.reduce((acc, v, idx) => acc+v);
return answer;
}
function involution(num, I){
if(I === "S"){
return num;
}else if(I == "D"){
return Math.pow(num, 2);
}else{
return Math.pow(num, 3);
}
}
function star(num, idx){
return num*2;
}
function sharp(num){
return -num;
}
이 문제도 정규식을 공부하는데 정말 좋은 문제다
1. match()개념
2. {1, }개념
3. ?개념
등의 정확한 활용을 익혔다.
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers]비밀지도 (0) | 2021.07.04 |
---|---|
[Programmers] 신규 아이디 추천 (0) | 2021.07.03 |
[Programmers] [3차] n진수 게임 (0) | 2021.07.03 |
[Programmers] 짝지어 제거하기 (0) | 2021.06.24 |
[Programmers] 올바른 괄호 (0) | 2021.06.24 |
Comments