jiho_bae
Go devlog
jiho_bae
전체 방문자
오늘
어제
  • 분류 전체보기 (158)
    • JavaScript (38)
      • theory (34)
      • vanilla (4)
    • HTML & CSS (2)
    • Browser (3)
    • CS (6)
      • linux (1)
      • shell (2)
      • compiler (2)
    • DS & Algorithm (87)
      • theory (5)
      • basic (7)
      • programmers (30)
      • baekjoon (45)
    • Design Pattern (2)
    • Error (4)
    • Git & Github (4)
    • Tools (1)
    • 부트캠프 (4)
    • Small Tips (2)
    • Java (3)
    • test (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리액트 프로젝트 디버깅하기
  • 계수정렬 자바스크립트
  • 자바스크립트 모듈 시스템
  • 25632 소수 부르기 게임
  • 자바스크립트 커링
  • JavaScript
  • safari invalid date error
  • 억억단을 외우자 javascript
  • 자바스크립트 채팅방 스크롤
  • 13460 javascript nodejs
  • 대충만든자판 javascript
  • 가사 검색 자바스크립트
  • safari Date format NaN
  • fetch 취소하기
  • 카카오 코딩테스트 양궁대회 nodeJS
  • 자바스크립트 비동기 마이크로 태스크 큐와 렌더링 과정
  • 프로그래머스 숫자카드나누기 javascript
  • javascript use strict
  • 퀵정렬 자바스크립트
  • 깃 이전 커밋에서 새 브랜치 만들기
  • 백준 17406 nodeJS
  • 덧칠하기 javascript
  • 자바스크립트 배열의 특수함
  • 병합정렬 자바스크립트
  • 외벽 점검 javascript
  • 자바스크립트 sort는 왜 그모양일까
  • 리코쳇 로봇 javascript
  • 자바스크립트 이벤트 위임
  • 1753 최단경로 javascript
  • 백준 자바스크립트 입력 템플릿

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
jiho_bae

Go devlog

[백준] 9093번 단어 뒤집기 - JavaScript(NodeJS)
DS & Algorithm/baekjoon

[백준] 9093번 단어 뒤집기 - JavaScript(NodeJS)

2021. 5. 1. 03:44

 

문제

 

 

9093번: 단어 뒤집기

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

www.acmicpc.net

 

입력 받기

입력을 받는 대한 방법은,

 

"백준 자바스크립트 입력" 키워드로 검색하거나,

 

[백준] 10828번 스택 - 자바스크립트 / NodeJS

문제 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다.

gobae.tistory.com

에 간단하게 정리해놨다.

 


문제 풀이

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split("\n");

let len = parseInt(input[0]);
for (let i = 1; i <= len; i++) {
  let words = input[i].split(" ");
  let answer = "";
  for (let word of words) {
    if (word.length === 1) {
      answer += `${word} `;
    }
    answer += `${word.split("").reverse().join("")} `;
  }
  console.log(answer);
}

입력을 받는 첫 두 줄을 제외하면  짧게 끝났다.

 

문제 해결을 위해 배열의 reverse 함수를 쓰면 좋겠다고 생각했다.

 

그래서, words 변수를 문장을 구성하는 각 단어를 기준으로 나눠 값을 가지게 했고,
for문을 통해 각 단어를 split + reverse + join 의 결합으로 뒤집고, 각 단어를 합쳐서 다시 문장으로 만들어 출력했다.

 

실행 결과

 

 

이대로 짧게 끝내기는 아쉬우니, 가능한 코드를 더 줄여보자.

 

다른 코드

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split("\n");
let len = parseInt(input[0]);
for (let i = 1; i <= len; i++) {
  let words = input[i].split(" ");
  let answer = words.map((word) => word.split("").reverse().join("")).join(" ");
  console.log(answer);
}

for 문을 map 함수로 대체하였다.

map 함수는 각각의 요소들에 함수를 적용한 함수 리턴값들을 새로운 요소로 가진 배열을 리턴한다.

 

이렇게 문장의 각각의 단어들을 뒤집은 배열을 얻어서, join 함수로 다시 문장(문자열)으로 만들어 출력했다.

 

 

실행 결과

 

저작자표시 (새창열림)

'DS & Algorithm > baekjoon' 카테고리의 다른 글

[백준] 13023번 ABCDE - JavaScript(NodeJS)  (0) 2021.05.27
[백준] 1932번 정수삼각형 - JavaScript(NodeJS)  (0) 2021.05.17
[백준] 1309번 동물원 - JavasScript(NodeJS)  (0) 2021.05.16
[백준] 1406번 에디터 - JavaScript(NodeJS)  (2) 2021.05.02
[백준] 10828번 스택 - JavaScript(NodeJS)  (0) 2021.05.01
    'DS & Algorithm/baekjoon' 카테고리의 다른 글
    • [백준] 1932번 정수삼각형 - JavaScript(NodeJS)
    • [백준] 1309번 동물원 - JavasScript(NodeJS)
    • [백준] 1406번 에디터 - JavaScript(NodeJS)
    • [백준] 10828번 스택 - JavaScript(NodeJS)
    jiho_bae
    jiho_bae
    하루에 한 걸음씩

    티스토리툴바