memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.tistory.com/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형
문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다

문제

 

풀이

전체 코드

const solution = (input) => {
    const s = input.split('');
    let cnt = 0;
    for (let i = 0; i < s.length; i++) {
        const c = s[i];
        const nc = s[i + 1];
        const nnc = s[i + 2];
        if (c === 'd') {
            if (i + 2 < s.length && nc === 'z' && nnc === '=') {
                i += 2;
            } else if (i + 1 < s.length && nc === '-') {
                i++;
            }
        } else if (c === 'c' && i + 1 < s.length && ['=', '-'].includes(nc)) {
            i++;
        } else if (['l', 'n'].includes(c) && i + 1 < s.length && nc === 'j') {
            i++;
        } else if (['s', 'z'].includes(c) && i + 1 < s.length && nc === '=') {
            i++;
        }
        cnt++;
    }
    return cnt;
};

require('readline')
    .createInterface(process.stdin, process.stdout)
    .on('line', (input) => console.log(solution(input)))
    .on('close', () => process.exit(0));

 

상세 풀이

아래의 경우가 크로아티아 알파벳이다. 이때는 카운팅을 1만 한다.

  • d 로 시작할 때, 그 다음에 'z=' 또는 '-'가 오는 경우
  • c로 시작할 때, 그 다음에 '=' 또는 '-'가 오는 경우
  • l과 n으로 시작할 때, 그 다음에 'j' 가 오는 경우
  • s와 z로 시작할 때, 그 다음에 '='가 오는 경우

위 4가지 경우를 제외하고 모든 단어는 그냥 알파벳이기 때문에, 한 글자씩 카운팅을 한다.

 

 

전체 코드

https://github.com/bluemiv/Algorithm/blob/master/baekjoon/nodejs/src/ex02/ex2941.js

 

GitHub - bluemiv/Algorithm: 알고리즘 풀이

알고리즘 풀이. Contribute to bluemiv/Algorithm development by creating an account on GitHub.

github.com

 

풀이 결과

문제 풀이 결과

 

관련 글

2022.07.21 - [Algorithm/Beakjoon] - jest 단위테스트를 이용하여 백준 알고리즘 문제 편하게 풀기

 

jest 단위테스트를 이용하여 백준 알고리즘 문제 편하게 풀기

쉬운 문제는 웹 사이트에서 풀어도 되지만, 복잡한 문제는 여러 경우의 케이스에 대해서 실행해보는 경우가 생긴다. 백준에서는 다른 알고리즘 문제 사이트와 다르게 웹에서 실행해볼수가 없어

memostack.tistory.com

 

 

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.tistory.com/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!