ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 9093. 단어 뒤집기
    Baekjoon 2023. 4. 9. 18:18

     문제 

    문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.

     

     입력 

    첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.

    2
    I am happy today
    We want to win the first prize

     

     출력 

    각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.

    I ma yppah yadot
    eW tnaw ot niw eht tsrif ezirp

     

     에러 

    더보기
    let fs = require("fs");
    const readFileSyncAdd = "9093.txt";
    const input = fs.readFileSync(readFileSyncAdd).toString().split('\n');
    
    const len = input.shift();
    
    for (let i = 0; i < len; i++) {
        let res = "";
        const words = input[i].split('\n');
        for(let j = 0; j < words.length; j++ ) {
        const word = words[j].split(' ');
            for(let k = 0; k < word.length; k++){
                const w = word[k].split('');
                w.reverse();
                res += ' ' + w.join('');
            }
            console.log(res)
        }
    }

    출력 형식이 잘못되었습니다 가 떴다.

    출력 형식이 잘못되었습니다 는 출력된 것이 정답과 유사하나, 공백이나 줄바꿈 등으로 약간 다를 때 발생한다.

    res 에 뒤집은 단어를 넣을 때, 띄어쓰기를 추가했는데 이것 때문에 첫 단어 앞에도 공백이 들어간 것이 문제였다.

    즉, 'I ma yppah'여야 하는데, ' I ma yppah'가 되어버렸다는 것.

    그래서 if문을 사용, 맨 앞 단어에는 공백을 넣지 않는 것으로 변경.

    결과는 맞았습니다!! 야호

     

     제출 코드 

    let fs = require("fs");
    const readFileSyncAdd = "9093.txt";
    const input = fs.readFileSync(readFileSyncAdd).toString().split('\n');
    
    const len = input.shift();
    
    for (let i = 0; i < len; i++) {
        let res = "";
        const words = input[i].split('\n');
        for(let j = 0; j < words.length; j++ ) {
        const word = words[j].split(' ');
            for(let k = 0; k < word.length; k++){
                const w = word[k].split('');
                w.reverse();
                if(k!==0) {
                    res += ' ' + w.join('');
                }
                else {
                    res += w.join('')
                }
            }
            console.log(res)
        }
    }

     #실제 코드 제출 시에는 "9093.txt" 를 "./dev/stdin" 으로 바꾸는 것을 잊지말자.

    'Baekjoon' 카테고리의 다른 글

    11655. ROT13  (0) 2023.05.02
    10845. 큐  (0) 2023.05.02
    10820. 문자열 분석  (0) 2023.05.02
    1157. 단어 공부  (0) 2023.04.09
    10828. 스택  (0) 2023.04.09
Designed by Tistory.