문제는 간단하다
- 문자열의 개수 N 그리고 문자열이 그만큼 주어져있고
나눠져 있는 단어 하나하나를 뒤집어서 출력해준다- revers 함수를 떠올렸고 그를 이용해 문제를 풀어보기로 했다 가자
const fs = require("fs");
const { join } = require("path");
// let input = fs.readFileSync("/dev/stdin", "utf8").toString().split('\n');
let input = fs.readFileSync("example.txt", "utf8").toString().split('\n');
const N = input.shift();
//테스트 케이스 개수를 받을 때 input에서 삭제해주는 방법을 배웠다 이게 좋아보인다
let result = []
//최종 정답을 담을 배열 생성
for(let i=0; i<N; i++){
let copyInputArr = input[i].split(' ')
//input을 하나하나 split해서 나눠 줄 배열 선언
//[ 'I', 'am', 'happy', 'today' ]
let formatResultArr = []
//이 배열은 i가 오를때마다 빈 배열로 초기화 되는 배열이다
for(let j=0; j<copyInputArr.length; j++){
//카피해온 배열을 이용해 반복문 시작
let reversWord = copyInputArr[j].split('').reverse().join('')
//예를 들어 happy가 들어온다 쳐보자 ['h','a','p','p','y'] << 스플릿을 해주고
//저렇게 배열로 만들어야만 revers 메서드를 사용할 수 있다 배열함수이기때문
//다시 조인으로 공백 없이 합쳐주면 우리가 원하는 yppah 문자열을 얻을 수 있고
formatResultArr.push(reversWord)
//임시 포맷배열에 하나하나 값을 추가해준다
}
let lastArr = formatResultArr.join(' ')
//기존에 쉼표가 있는 배열을 공백으로 교체하여 나눠준다
//I,ma,yppah,yadot join을 안 쓸 경우
//I ma yppah yadot join을 쓴 경우
result.push(lastArr)
//최종 정답 배열에 추가
}
//result
//[ 'I ma yppah yadot', 'eW tnaw ot niw eht tsrif ezirp' ]
console.log(result.join("\n"))
/*
I ma yppah yadot
eW tnaw ot niw eht tsrif ezirp
*/
//예제 출력에 맞게 줄바꿈까지 해준당
문자열 놀이 언제까지 하나 했는데 아직도 어렵다 간단한 문제인데 꽤 시간을 썻네
기초를 더 다지고 알고리즘 개념을 체득할 필요가 있어 뵌다