백준 9093 단어뒤집기

걍걍규·2023년 7월 6일
0
post-thumbnail

문제는 간단하다

  • 문자열의 개수 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
*/
//예제 출력에 맞게 줄바꿈까지 해준당

문자열 놀이 언제까지 하나 했는데 아직도 어렵다 간단한 문제인데 꽤 시간을 썻네
기초를 더 다지고 알고리즘 개념을 체득할 필요가 있어 뵌다

profile
안녕하시오?

0개의 댓글