728x90
오늘은 심화 1 두 번째 시간이다.
문제 10988번
https://www.acmicpc.net/problem/10988
앞 뒤에서 읽을 때 똑같은 단어이면 1, 아니면 0을 출력하라고 한다.
음... 일단 입력값을 배열에 받고, 이를 역순으로 뒤집어서 다른 배열에 넣은 다음 둘을 비교하면 되지 않을까...?
const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt'
const input = require('fs').readFileSync(readFileSyncAdress).toString().trim();
const rinput = input.split('').reverse().join('');
console.log(input===rinput ? 1:0);
ㅎㅎ
처음에 input을 역순으로 뒤집을 때 reverse()만 사용해서 오류가 발생했다. 나눠주고(split) 붙여주는(join) 함수도 같이 써야 했는데... 이젠 절대 잊어버리지 말아야지!
예제로 테스트를 해보니 아주 잘 나와서 제출했더니 틀렸다는 결과가 나왔다...
그래서 계속 보다가 [참고]에 있는 첫 번째 주소의 풀이를 보니 trim()이 있어서 '혹시... 공백이 들어갔나??' 라는 생각에 얼른 넣어줬다.
그랬더니 맞았습니다라는 결과가 나왔다 ㅎㅎ.
이런 거 받을 때 trim()은 필수적으로 생각해야겠다.
다른 풀이를 보니까 길이를 반으로 나눠서 왼쪽 오른쪽으로 나눠주고, 오른쪽을 역순으로 만들어서 비교해주는 분도 있었다.
const input = require('fs').readFileSync(/dev/stdin).toString().trim().split('\n');
const str = input[0];
const lng = str.length/2
const left = str.slice(0,lng);
const right = str.slice(Number.isInteger(lng)?lng:parseInt(lng)+1)
if(left===right.split('').reverse().join('')) console.log(1)
else console.log(0)
출처: https://velog.io/@ahrkwltlarh/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-10988%EB%B2%88
[참고] https://zuni.kim/posts/baekjoon-10988/
오늘은 마중나가야하는 사람이 있어서 여기까지 해야겠다...
그럼 안녕~~~
728x90
'백준 > JavaScript' 카테고리의 다른 글
[JS] 백준 심화 1 - 마지막 이야기 (0) | 2024.01.26 |
---|---|
[JS] 백준 심화 1 - 세 번째 이야기 (0) | 2024.01.25 |
[JS] 백준 심화 1 - 첫 번째 이야기 (0) | 2024.01.23 |
[JS] 백준 문자열 - 마지막 이야기 (0) | 2024.01.22 |
[JS] 백준 문자열 - 다섯 번째 이야기 (0) | 2024.01.21 |