티스토리 뷰

중첩 반복문+문자열 처리에 관한 문제인듯

const fs = require('fs');

const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let inputChartext = fs.readFileSync(filePath).toString().split('\n');
let inputcharfiltered = inputChartext.filter(value => value.length > 0);

solution(inputcharfiltered)

function solution (inputArray) {
  let count = +inputArray[0];
  let result = [];
  let reverse = [];

  for(let i = 1; i < count+1; i++) {  // i : 1,2
    let words = inputArray[i].split(' ');
    for(let j = 0; j < words.length; j++) { // words : [I,am,happy,today]
      for(let k = words[j].length; k; k--) {
        reverse.push(words[j].charAt(k-1));
      }
      reverse.push(' ');
    }
    reverse[reverse.length-1] = '';
    result.push(reverse.join(''));
    reverse = [];

  }
console.log(result.join('\n'));
}

초반 입력처리는 앞서 푼 문제의 기반을 좀 사용했다.

 

주어진 문장 루프 내에서 단어를 뽑아 루프를 돌고 또 그안에서 역 입력을 위한 루프로 총 3중첩 반복문을 돈다.

한 뒤집힌 문장을 stringarray형태로 reverse에 join('')로 정상화하여 result 배열에 저장하고,

result 배열을 join('\n')으로 한 번 출력했다.


딱히 겪은 문제는 없었다.

그냥 내 코드가 최적화 되어있지 않으리란 강한 예감이 들 뿐이다. ㅋㅋㅋㅋ

 

다른 사람 코드를 좀 보니 다들 reverse함수를 썼더라구...

아니 나는 그냥 있는 거 간단하게 쓸거면 알고리즘 공부하는 느낌이 없다 생각했지ㅇ이이잉...

 


  for(let i = 1; i < count+1; i++) {  // i : 1,2
    let words = inputArray[i].split(' ');
    // words : [I,am,happy,today]
    for(var letter in words) {
      reverse = words[letter].split('').reverse();
      console.log(reverse);
    }
  }

이걸 돌려보니까

이렇게 나온다.

join('')으로 조합하고, 띄어쓰기 더해주고 마지막에 \n 더해주면 되겠지?

function solution (inputArray) {
  let count = +inputArray[0];
  let reverse = '';

  for(let i = 1; i < count+1; i++) {  // i : 1,2
    let words = inputArray[i].split(' ');
    // words : [I,am,happy,today]
    for(var letter in words) {
      reverse += words[letter].split('').reverse().join('') + ' ';
    }
    reverse += '\n';
  }
  console.log(reverse);
}

이렇게 다시 내봤다.

reverse 쓰는것보다는 직접 구현하는게 더 좋긴 한가보당. 

'■ 알고리즘 > ◻ 백준' 카테고리의 다른 글

[Nodejs]1874번: 스택 수열  (0) 2022.07.23
[Nodejs]9012번: 괄호  (0) 2022.07.22
[Nodejs]10828번: 스택  (0) 2022.07.20
알고리즘 기초 문제 풀이 순서  (0) 2022.07.20
[C#]백준 2750번 : 수 정렬하기  (0) 2018.08.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함