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 | 31 |
Tags
- [pccp 기출문제]
- pccp기출문제
- 두원사이의정수쌍
- div2개
- 타겟넘버
- 프로그래머스
- 최소스패닝트리
- 과제진행하기
- 우박수열정적분
- Lv3
- c++
- 백준알고리즘
- DP
- 정렬
- Lv2
- 알고리즘 문제풀이
- 스택
- 코어자바스크립트
- React.StrictMode
- 5강클로저
- 알고리즘문제풀이
- 지도 여러개
- 백준 알고리즘
- solved.ac골드
- JS스터디
- solved.ac플래티넘
- JS
- 비트마스크
- 이중지도
- 2023카카오블라인드코테
Archives
- Today
- Total
호지
[프로그래머스] 1차 다트 게임 문제풀이 JS 본문
dartResult를 탐색하면서 확인해야할 것은 다음과 같다.
1) 점수인지 판별
점수는 0-10이 가능하기 때문에 0점~9점은 문자 한개로 판별이 가능하나,
10점 판별을 위해 다음 문자가 0인지 확인한다.
여기서 구한 점수는 scores 배열에 넣는다.
2) SDT로 제곱
S는 1제곱이므로 값은 그대로 유지가 되고,
D는 2제곱이므로 scores에 가장 최근 점수에 2제곱을 하고,
T는 3제곱이므로 scores에 가장 최근 점수에 3제곱을 하고 한다.
3) 스타상(*) 판별
스타상은 제일 앞에서 나왔을 경우엔 가장 최근 점수에만 2배를
그 외의 경우엔 가장 최근 점수와 그 앞의 점수에 2배를 한다.
4) 아차상(#) 판별
아차상은 가장 최근 점수에만 -1배를 한다.
각각을 탐색하면서 바뀌는 점수는 scores를 업데이트한다.
결과적으로 점수는 3개이므로
scores[0], scores[1], scores[2]를 더한 값을 return하면
원하는 결과를 얻을 수 있다.
function solution(dartResult) {
let scores = [],
score
for (let i = 0; i < dartResult.length; i++) {
if (!isNaN(dartResult[i])) {
score = parseInt(dartResult[i])
if (dartResult[i + 1] === '0') {
i++
score = 10
}
scores.push(score)
} else if (dartResult[i] === 'D') {
score = scores.pop()
scores.push(score ** 2)
} else if (dartResult[i] === 'T') {
score = scores.pop()
scores.push(score ** 3)
} else if (dartResult[i] === '*') {
let score = scores.pop()
if (scores.length !== 0) {
let temp = scores.pop()
scores.push(temp * 2)
}
scores.push(score * 2)
} else if (dartResult[i] === '#') {
let score = scores.pop()
scores.push(score * -1)
}
}
return scores[0] + scores[1] + scores[2]
}
https://school.programmers.co.kr/learn/courses/30/lessons/17682#
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 예산 문제풀이 JS (0) | 2023.08.11 |
---|---|
[프로그래머스] 1차 비밀지도 문제풀이 JS (0) | 2023.08.10 |
[프로그래머스] 완주하지 못한 선수 문제풀이 JS (0) | 2023.08.10 |
[프로그래머스] K번째수 문제풀이 JS (0) | 2023.08.10 |
[프로그래머스] 모의고사 문제풀이 JS (0) | 2023.08.08 |
Comments