https://www.acmicpc.net/problem/8958
입력값
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
for(let i = 1; i<= input[0]; i++){
let count = 0;
let newArr = input[i].split('X').map((i)=>{
for(let j =1; j <= i.length; j++){
count += j
}
});
console.log(count);
}
input의 요소에 split()를 사용해 입력값에 'X'를 기준으로 'O'만 남긴다.
[ 'OO', '', 'O', '', 'OOO' ]
[ 'OO', '', 'OO', '', 'OO' ]
['O', 'O', 'O','O', 'O', 'O', 'O', '']
[ 'OOOOOOOOOO' ]
[ 'OOOO', 'OOOO', 'OOOO', '' ]
문자의 길이(글자수) length를 이용해 각 요소의 글자 수를 최대값으로 한 for문을 만든다.
요소의 글자수 만큼의 최대값을 j가 최대값을 가지게 된다.
j의 값만큼 count변수에 값을 더해주면 'O'연속해서 퀴즈를 풀어 누적된 점수를 얻을 수 있다.
'X'값을 제거하는 것 까지는 생각했는데 그 다음 스텝을 풀 방법이 생각나지 않아 어려움이 있었다. 다른 사람들은 어떻게 풀었나 검색해 보았더니 for문을 이용해서 풀어서 for문을 사용했다. 다른 사람들이 푼 것을 따라하는 것이 아닌, 내가 생각했던 풀이방법으로 풀어보고 싶어서 다른 사람들꺼보다는 풀이 과정이 복잡해진 것 같지만, 구상했던 풀이방법으로 문제를 풀 수 있어 뜻 깊었다.