[JS] 백준 8958 OX퀴즈

n-u·2022년 7월 12일
0

Algorithm

목록 보기
24/33
post-thumbnail

백준 8958 OX퀴즈

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문을 사용했다. 다른 사람들이 푼 것을 따라하는 것이 아닌, 내가 생각했던 풀이방법으로 풀어보고 싶어서 다른 사람들꺼보다는 풀이 과정이 복잡해진 것 같지만, 구상했던 풀이방법으로 문제를 풀 수 있어 뜻 깊었다.

profile
기록하며 발전하는 삶

0개의 댓글