프로그래머스 Day - 1

dbsdnjs002·2023년 5월 17일
7
post-thumbnail

1. 문자열 출력하기

목표 : 문자열을 입력받아 입력받은 문자열을 출력

//입력
HelloWorld!
//출력
HelloWorld!
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.on('line', (line) => {
    return console.log(line)
})
  • readline 모듈을 불러와 createInterface메서드를 사용한다.

Interface 인스턴스(rl)을 사용하여 Interface에 내장된 함수를 .on으로 사용한다.
나와있진 않지만, .close도 존재하는데, Interface 인스턴스와 입출력 스트림제어를 종료한다.
line 이벤트는 사용자가 Enter나 Return을 누를때 입력스트림이 발생한다.


2. a와 b출력하기

목표 : Int a,b를 입력받아 특정형식으로 출력

//입력
4 5
//출력
a = 4
b = 5
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', (line) => {
    input = line.split(' ');
    console.log("a = "+input[0]+"\nb = "+input[1])
    
});
  • 위와 똑같이 readline을 사용한다 하지만, 입력된 값을 분리해야하기 때문에 line이벤트를사용할때 콜백함수에서 문자열을 분리한다.
  • 이후 console.log나 return을 사용하여 주어진 형식에 맞춰 문자열을 출력한다.

3. 문자열 반복해서 출력하기

목표 : 문자열과 정수를 입력받아 정수만큼 문자열을 반복출력

//입력
string 5
//출력
stringstringstringstringstring
let input = [];

rl.on('line', function (line) {
    input = line.split(' ');
    for(var i = 0; i<input[1]; i++){
        process.stdout.write(input[0])
    }
})

( rl 인스턴스를 불러오는 과정은 생략 )

  • 위와 마찬가지로 입력된 문자열을 분리시키고 반복문을 사용해 input에 0번 Index에 담긴 문자열을 input 1번 Index에 담긴 정수만큼 반복시킨다.
  • 여기서 주의할점은 console.log로 출력하게된다면 반복문이 1 cycle이 돌 때 마다 개행되어 출력될것이다. 따라서 JS에서 개행하지않고 문자열을 출력하는 process.stdout.write()를 사용하여 출력한다.

4. 대소문자 바꿔서 출력하기

목표 : 알파벳 문자열을 입력받아 각 대소문자를 바꿔서 출력

//입력
aBcDeFg
//출력
AbCdEfG
var answer=[];
rl.on('line',(line)=> {
    for(let x of line){
        if(x===x.toUpperCase()){
            answer += x.toLowerCase();
        }else answer += x.toUpperCase()
    }
     console.log(answer);
})

( rl 인스턴스를 불러오는 과정은 생략 )

  • answer이라는 빈 문자열 변수를 생성한다.
  • .on()의 콜백함수에서 입력받은 문자열의 길이만큼 반복한다.
  • 반복문 안에서는 순서대로 line의 문자열이 x에 담긴 문자를 if문으로 검사한다.
  • 대문자면 소문자로, 소문자면, else로 처리하여 대문자로 생성해둔 answer이라는 빈 문자열에 추가하고, 출력한다.

str.toUpperCase()는 문자열을 대문자로 바꾼다.
str.toLowerCase()는 문자열을 소문자로 바꾼다.


5. 특수문자 출력하기

목표 : 특수문자 출력

//출력
!@#$%^&*(\'"<>?:;
rl.on('close', function () {
    console.log("!@#$%^&*(\\'\"\<>?:;")
});

( rl 인스턴스를 불러오는 과정은 생략 )

  • 특수기호는 "따옴표" 로 출력 가능한것들도 있지만, 그냥 쓰면 출력이 되지 않는것들도 있다.(\,', ") 이런 특수문자는 \를 뒤따라오게 작성하여 출력할수있다.
profile
ΔIM ΩΠ ҒULLSTΔCҜ

0개의 댓글