[Problem]
@ 동그라미 엑스로 숫자를?
"OOXXOXXOOO"와 같은 OX문의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 떄, 점수를 구하는 프로그램을 작성하시오.
(단, OX문의 결과는 0보다 크고 80보다 작은 문자열이 주어진다. 또한 문자열은 O와 X만으로 이루어져 있다.)
<답안 포멧>
function solution(str){
let answer= 0;
return answer;
}
let str="OXOOOXXXOXOOXOOOOOXO";
console.log(solution(str))
[Try]
- 연속해서 O에 따라 달라지는 점수의 값을 저장하는 count, 점수를 받는 배열의 초기값을 선언해준다.
- for문 안에 if문을 넣고 O와 X를 구분하여 점수를 기록하기
- 배열로 받은 점수들을 합하는 for문
[Solution]
function solution(str) {
let count = 0
let arr = []
for (let i = 0; i < str.length; i++) {
if (str[i] === 'O') {
count++
arr.push(count) // push를 통해 arr에 점수를 넣어준다.
} else {
count = 0
arr.push(0)
}
}
let sum = 0
for (let j = 0; j < arr.length; j++) {
sum += arr[j]
}
return sum
}
console.log(solution(str))
- if문에서는 count++를 통해 계속해서 O가 이어지면 점수가 커지게, else에서는 X를 통해 점수가 다시 0이 될수 있도록 했다.
- push를 통해 arr에 점수를 넣어준다.
- arr에 정리된 점수들을 for문을 통해 합해준다.
[Conclusion]
'Self Dev. > TIL' 카테고리의 다른 글
2023.04.26 TIL - MongoServerError: E11000 duplicate key error collection (1) | 2023.04.27 |
---|---|
2023.04.24 TIL - 환경마다 다른 명령어 (0) | 2023.04.24 |
2023.04.18 TIL - 소수 만들기 (0) | 2023.04.18 |
2023.04.17 TIL - 로또의 최고 순위와 최저 순 (0) | 2023.04.17 |
2023.04.15 TIL - 문자열 다루기 기본 (0) | 2023.04.15 |