본문 바로가기

백준/JavaScript

[JS] 백준 문자열 - 마지막 이야기

728x90

 

 

눈이다~~~~~~~~~

오늘은 너무 춥다.

 

 

드디어 문자열 마지막 이야기이다 ㅎㅎ.

빨리 풀고 다음 단계로 넘어가야지~~~

 

 

 

 

문제 5622번

https://www.acmicpc.net/problem/5622

 

5622번: 다이얼

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.

www.acmicpc.net

 

이 문제는 해당 알파벳들이 어떤 숫자에 해당하는지 정해준 다음 시간이 얼마나 걸리는지 구하면 될 것 같다.

그런데 어떤 식으로 작성할지 모르겠어서 다른 풀이를 공부하고 내가 따로 작성해 봤다.

const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt'
const input = require('fs').readFileSync(readFileSyncAdress).toString();

let dial = {
    ABC: 3,
    DEF: 4,
    GHI: 5,
    JKL: 6,
    MNO: 7,
    PQRS: 8,
    TUV: 9,
    WXYZ: 10,
};

let time = 0;
for(let i=0;i<input.length;i++){
    for(let n in dial){
        if(n.includes(input[i])){
            time+=dial[n];
        }
    }
}
console.log(time);

 

 

일단 각 알파벳에 해당하는 걸리는 시간을 짝지어 변수에 넣어준다. 그리고 입력값과 dial에 있는 알파벳과 비교하여 해당 입력값이 포함되어 있으면 time 변수에 걸리는 시간을 더해준다. 그렇게 입력값들을 다 비교해 본 후 time을 출력해 주면 된다.

 

[참고] https://velog.io/@jc15853/JavaScript-%EB%B0%B1%EC%A4%80-5622%EB%B2%88-%EB%8B%A4%EC%9D%B4%EC%96%BC

 

 

 

 

문제 11718번

https://www.acmicpc.net/problem/11718

 

11718번: 그대로 출력하기

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시

www.acmicpc.net

 

입력받은 값을 그대로 출력하라고??

뭔가... 함정이 있나...?

그래... 33.005 %만 맞췄으니까... 함정이 있을 것이다!

 

이건 틀림없다!!!

 

 

 

...

 

 

const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt'
const input = require('fs').readFileSync(readFileSyncAdress).toString().split('\n');

console.log(input.join('\n'));

 

 

??????

 

 

 

 

 

 

뭐지??

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

우... 우와~~

맞췄다~~~~~

 

 

(함정은 없었다...)

 

 

 

믿어지지 않아서 다른 풀이도 찾아보니 input에 입력받고 그 input을 그대로 출력한 분도 있었다.

나도 그렇게 하려고 하다가 안 했는데...

그냥 할걸... 

 

심지어 \n를 기준으로 입력을 안 받아도 되는데...

 

ㅎㅎ... 너무 의심해 버렸다.

다음에는 생각나는 풀이를 일단 해봐야겠다.

 

 

 

 

 

그렇게 오늘은 문자열 단계 마지막 문제를 풀었다.

다음에는 심화 1 단계이다.

드디어...

좋았어! 가자~~~~~~~!!!!(내일)

728x90