[JavaScript] 문자열 출력하기

지애·2024년 7월 1일
1

JavaScript

목록 보기
4/7

개념

입출력

  • 프로그래머스에서 문자열 출력 문제를 풀 때 기본적으로 제공하는 코드를 분석해보자.
// CommonJS 방식으로 readline 모듈을 불러옴
// readline은 데이터를 한 번에 한 줄씩 읽을 수 있음.
const readline = require('readline');

// interface 객체 만들기
// console에서 표준 입출력 처리를 할 수 있음.
const rl = readline.createInterface({
    input: process.stdin, // standard input
    output: process.stdout // standard output
});

// input 변수 초기화
let input = [];

rl.on('line', function (line) {
	// 입력받은 값을 처리하는 코드
    input = [line];
}).on('close',function(){
	// 입력이 끝나고 실행되는 코드
    // 이 부분에 console.log를 찍어주면 출력이 된다.
    str = input[0];
});

문자열 반복 출력

문자열.repeat(반복 횟수)
  • python의 문자열*숫자 와 같은 결과를 보인다.

대소문자 체크

  • JavaScript에는 대소문자 체크 함수가 없다...!
  • 따라서 대소문자 변환을 한 후, 기존 문자와 동일한지 체크하는 방식으로 대소문자를 체크해주어야 한다.

대소문자 변환

문자열.toUpperCase();
문자열.toLowerCase();

문자열 포맷팅

console.log('name: %s', '하츄핑');
  • 파이썬과 비슷한 방식
const a = 1;
const b = 2;
console.log(`${a} + ${b} = ${a + b}`;
  • 백틱(`)을 사용해서 문자열 포맷팅을 할 수 있음

join

const arr = ['바람', '비', '물'];

console.log(arr.join());
// 바람,비,물

console.log(arr.join(''));
// 바람비물

console.log(arr.join('-'));
// 바람-비-물

문제 풀이

프로그래머스 level 0 - 문자열 출력하기

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = [line];
}).on('close',function(){
    str = input[0];
    console.log(str)
});

프로그래머스 level 0 - a와 b 출력하기

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = line.split(' ');
}).on('close', function () {
    console.log('a = ' + Number(input[0]));
    console.log('b = ' + Number(input[1]))
});
  • 굳이 Number 형 변환을 해주지 않아도 된다.
  • 또한, const [a, b] = line.split(' ') 이렇게 a, b값을 받을 수도 있다. (이때 a와 b를 scope 밖에서 미리 선언해야 한다.)

프로그래머스 level 0 - 문자열 반복해서 출력하기

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = []

rl.on('line', function (line) {
    input  = line.split(' ');
}).on('close', function () {
    var answer = ''
    for (i = 0; i < Number(input[1]); i++){
        answer += input[0]
    }
    console.log(answer);
});
  • 처음에는 repeat 함수를 알지 못해 이렇게 작성했었다.
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input  = line.split(' ');
}).on('close', function () {
    const str = input[0];
    const n = Number(input[1]);
    console.log(str.repeat(n));
});
  • repeat 함수를 적용하면 반복문을 쓸 필요가 없다.

프로그래머스 level 0 - 대소문자 바꿔서 출력하기

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = [line];
}).on('close',function(){
    str = input[0];
    var answer = '';
    
    for (i= 0 ; i < str.length; i++){
        if (str[i] == str[i].toUpperCase()){
            answer += str[i].toLowerCase();
        } else {
            answer += str[i].toUpperCase();
        }
    }
    console.log(answer);
});

프로그래머스 level 0 - 특수 문자 출력하기

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.on('close', function () {
    console.log('!@#$%^&*(\\\'"<>?:;');
});
  • js의 이스케이프 코드는 python과 동일하다~

프로그래머스 level 0 - 덧셈식 출력하기

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = line.split(' ');
}).on('close', function () {
    console.log( String(input[0]), '+', String(input[1]), '=',
                String(Number(input[0]) + Number(input[1])));
});
  • 다른 사람 풀이 보고 배운 것
rl.on('line', function (line) {
    [a, b] = line.split(' ').map(Number);
}).on('close', function () {
    console.log(`${a} + ${b} = ${a + b}`);
});
  • map으로 Number 함수를 일괄 적용할 수 있다
  • 백틱을 사용해서 문자열 포맷팅을 사용하자

프로그래머스 level 0 - 문자열 붙여서 출력하기

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = line.split(' ');
}).on('close', function () {
    str1 = input[0];
    str2 = input[1];
    console.log(str1+str2);
});
  • join 함수를 사용하면 input 개수에 관계없이 모두 붙여 쓸 수 있다.

프로그래머스 level 0 - 홀짝 구분하기

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = line.split(' ');
}).on('close', function () {
    n = Number(input[0]);
    if (n%2 == 0){
        console.log(`${n} is even`);
    } else {
        console.log(`${n} is odd`);
    }
});
profile
차근차근

0개의 댓글