https://www.acmicpc.net/problem/9093
9093번: 단어 뒤집기
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는
www.acmicpc.net
문제
문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.
출력
각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.
예제 입력 1 복사
2
I am happy today
We want to win the first prize
예제 출력 1 복사
I ma yppah yadot
eW tnaw ot niw eht tsrif ezirp
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
var input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
let result = '';
// 뒤집기
for (let i = 1; i <= Number(input[0]); i++) {
let sentence = input[i].split(' ');
for (let j = 0; j < sentence.length; j++) {
if (sentence[j].length == 1) {
result += sentence[j] + ' ';
} else {
for (let k = sentence[j].length - 1; k >= 0; k--) {
let word = sentence[j].split('');
result += word[k];
}
result += ' ';
}
}
result += '\n';
}
console.log(result);
|
cs |
reverse()를 사용한 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
const inputs = require("fs").readFileSync("/dev/stdin").toString().split("\n");
const count = Number(inputs[0]);
let result = "";
let input;
for (let i = 1; i <= count; i++) {
input = inputs[i];
result += input.split("").reverse().join("").split(" ").reverse().join(" ") + "\n";
}
console.log(result);
|
cs |
'코딩 문제 > 백준 [ Node.js ]' 카테고리의 다른 글
[ 백준 2606 / Node.js ] 바이러스 (0) | 2022.09.01 |
---|---|
[ 백준 1260 / Node.js ] DFS와 BFS (1) | 2022.09.01 |
[ 백준 1157 / Node.js ] 단어 공부 (0) | 2022.08.31 |
[ 백준 2577 / Node.js ] 숫자의 개수 (0) | 2022.08.30 |
[ 백준 10870 / Node.js ] 피보나치 수 5 (0) | 2022.08.29 |
댓글