Tesseractjh
한 걸음씩
Tesseractjh
전체 방문자
오늘
어제
  • 전체 (293)
    • IT (30)
      • JavaScript (7)
      • TypeScript (5)
      • React (5)
      • Next.js (3)
      • MongoDB (2)
      • Webpack (2)
      • HTML & CSS (1)
      • Git (0)
      • AWS (1)
      • 기타 (4)
    • 연습장 (259)
      • 백준(BOJ) 문제풀이 (185)
      • 프로그래머스 문제풀이 (61)
      • LeetCode 문제풀이 (2)
      • HackerRank 문제풀이 (7)
      • 낙서장 (3)
      • 기타 (1)
    • 프로젝트 (3)
      • 지뢰피하기 (1)
      • 키릴-라틴 문자 변환기 (1)
      • Flex & Grid (1)
    • 멋쟁이사자처럼 프론트엔드 스쿨 1기 (1)
      • 일기 & 회고록 (1)

인기 글

티스토리

hELLO · Designed By 정상우.
Tesseractjh

한 걸음씩

연습장/백준(BOJ) 문제풀이

[백준 10798] 세로읽기 with Node.js

2021. 4. 6. 14:11

문제 링크

www.acmicpc.net/problem/10798

 

10798번: 세로읽기

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

www.acmicpc.net

풀이

const words = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n");
const maxLength = Math.max(...words.map(i => i.length));
let vertical = "";
for (let i=0; i<maxLength; i++) {
    for (let j=0; j<words.length; j++) {
        vertical += words[j][i] || "";
    }
}
console.log(vertical);

단어들의 최대 길이를 구한 후, 각 단어들을 번갈아가며 순회하면서 한 글자씩 이어 붙인다. 이 때 maxLength보다 길이가 작은 경우 words[j][i]는 undefined를 반환하는데, 단축 평가 표현식을 통해 undefined의 경우 false가 되어 논리합 연산자의 뒤에 있는 빈 문자열 ""을 더하게 된다.

 

Math.max(...words.map(i => i.length));
// Math.max.apply(null, words.map(i => i.length));와 같음

 

'연습장 > 백준(BOJ) 문제풀이' 카테고리의 다른 글

[백준 2164] 카드2 with Python  (0) 2021.04.07
[백준 10988] 팰린드롬인지 확인하기 with Node.js  (0) 2021.04.06
[백준 11653] 소인수분해 with Python  (0) 2021.04.06
[백준 1977] 완전제곱수 with Node.js  (0) 2021.04.05
[백준 2167] 2차원 배열의 합 with Python  (0) 2021.04.05
    '연습장/백준(BOJ) 문제풀이' 카테고리의 다른 글
    • [백준 2164] 카드2 with Python
    • [백준 10988] 팰린드롬인지 확인하기 with Node.js
    • [백준 11653] 소인수분해 with Python
    • [백준 1977] 완전제곱수 with Node.js
    Tesseractjh
    Tesseractjh
    바닐라 자바스크립트를 좋아하는 개발자입니다

    티스토리툴바