밝을희 클태

[백준 node.js / javascript]세로읽기 문제 백준(10798) 본문

백준

[백준 node.js / javascript]세로읽기 문제 백준(10798)

huipark 2023. 10. 21. 11:58

입력 :

총 다섯 줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’ 중 하나이다. 각 줄의 시작과 마지막에 빈칸은 없다.

 

출력 :

세로로 읽은 순서대로 글자들을 출력한다. 이때, 글자들을 공백 없이 연속해서 출력한다. 


 

const fs = require("fs");
const input = fs
	.readFileSync("/dev/stdin")
	.toString()
	.trim()
	.split("\n")
	.map((arr) => arr.split(""));
let strArr = [];
let answers = "";
input.map((arr) =>
	arr.map((char, idx) => {
		if (!strArr[idx]) strArr[idx] = "";
		strArr[idx] += char;
	})
);
strArr.map((str) => (answers += str));

console.log(answers);

 

 

일단 인풋을 idx로 읽기 위해 2차원 배열로 만들어준다. 처음에 들어온 문자열을 공백('\n') 기준으로 잘라주고 다시 문자 기준으로 잘라준다.

const fs = require("fs");
const input = fs
	.readFileSync("/dev/stdin")
	.toString()
	.trim()
	.split("\n")
	.map((arr) => arr.split(""));

 

input(문자가 담겨있는 2차원 배열)을 map 메소드로 순회하면서 각 idx의 값을 strArr의 idx에 문자를 더해준다.

let strArr = [];
let answers = "";
input.map((arr) =>
	arr.map((char, idx) => {
		if (!strArr[idx]) strArr[idx] = "";
		strArr[idx] += char;
	})
);

다시 strArr에 map을 돌면서 answers에 최종적으로 문자열을 더해주고 출력해 준다

strArr.map((str) => (answers += str));

console.log(answers);