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
- 알고리즘 문제풀이
- 과제진행하기
- 타겟넘버
- 백준 알고리즘
- 우박수열정적분
- 2023카카오블라인드코테
- 백준알고리즘
- div2개
- 코어자바스크립트
- pccp기출문제
- 이중지도
- 지도 여러개
- React.StrictMode
- solved.ac플래티넘
- DP
- 정렬
- 알고리즘문제풀이
- 최소스패닝트리
- JS스터디
- JS
- 프로그래머스
- 5강클로저
- Lv3
- 두원사이의정수쌍
- 스택
- solved.ac골드
- [pccp 기출문제]
- c++
- Lv2
- 비트마스크
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