본문 바로가기

백준/JavaScript

[JS] 백준 문자열 - 다섯 번째 이야기

728x90

 

 

 

오늘은 친척들이 집으로 돌아갔다.

좀 쉬다가 문제를 풀기 위해 노트북 앞에 앉았다...

 

 

 

 

문제 1152번

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

 

1152번: 단어의 개수

첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열

www.acmicpc.net

 

이 문제는 공백을 기준으로 한 줄을 입력받은 후 그 배열의 길이를 출력해 주면 될 것 같다.

 

 

...

 

 

그런데... 

 

 

 

 

오잉??????

왜 틀렸는지 보다가 다른 풀이를 보고 알았다.

 

 

아무것도 안 적힌 입력값이 들어올 수 있기 때문에 '' 만 들어왔을 때 split된 배열에는 [ '' ]만 들어가게 된다고 한다.

그래서 '' 가 입력값으로 들어오면 0이 출력되도록 만들어주면 된다.

 

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

console.log(input[0] === '' ? 0 : input.length);

 

 

[참고] https://dpsc615.tistory.com/49

 

 

 

 

 

 

 

문제 2908번

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

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

 

공백을 기준으로 입력받은 후에 각각의 값을 ''를 기준으로 나눈 후 역순으로 정렬!!

그리고 ''를 기준으로 다시 붙여주면 될 것 같다.

 

출력할 때는 비교를 해서 A가 더 크면 A를, B가 더 크면 B를 출력한다.

 

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

const A = Number(input[0].split('').reverse().join(''));
const B = Number(input[1].split('').reverse().join(''));

console.log(A>B ? A : B);

 

 

 

으... 너무 졸리다...

오늘은 여기까지 해야겠다.

그래도 내일은 문자열 단계를 끝낼 수 있을 것 같다.

728x90