[프로그래머스] 코딩 기초 트레이닝 Day1

hello__0·2025년 5월 3일
0

Algorithm

목록 보기
21/21

1. 문자열 출력하기

문제 설명
문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.

제한사항

  • 1 ≤ str의 길이 ≤ 1,000,000
  • str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.

[입력 #1]
HelloWorld!

[출력 #1]
HelloWorld!


[나의 풀이]

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

rl.on("line", (str) => {
  	console.log(str);
	rl.close();
});

2. a와 b 출력하기

문제 설명
정수 a와 b가 주어집니다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요.

제한사항

  • -100,000 ≤ a, b ≤ 100,000

[입력 #1]
4 5

[출력 #1]
a = 4
b = 5


[나의 풀이]

입력값이 "4 5"
그렇기 때문에 4와 5를 먼저 분리하는 작업을 해야한다.
그래서 빈 배열 arr를 만들어서 "4 5"를 띄어쓰기로 분리해준다.
그럼 arr = [ '4', '5' ]가 된다.
출력값
a = 4
b = 5
가 되기 위해선 문자인 '4','5'를 숫자로 변환해주어야 한다.
그렇기 때문에 Number를 사용하여 숫자로 변환하고``를 활용하여 그대로 적용해준다.

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

let arr = [];

rl.on("line", (line) => {
    arr = line.split(' ');
	rl.close();
}).on('close', () => {
    console.log(`a = ${Number(arr[0])}\nb = ${Number(arr[1])}`);
    process.exit();
});

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

문제 설명
문자열 str과 정수 n이 주어집니다.
str이 n번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요.

제한사항

  • 1 ≤ str의 길이 ≤ 10
  • 1 ≤ n ≤ 5

입력 #1
string 5

출력 #1
stringstringstringstringstring


[나의 풀이]

2번을 풀이했을 때와 마찬가지로 처음에 arr이라는 빈 배열에 split으로 쪼개서 string과 5를 분리한다.
처음에는 배열 초기화를 하고 싶었지만 방법을 찾지 못했다.
최대한 내 머릿속에서 나온 콘솔 값은
[string, 5, Nan, Nan, Nan, Nan, Nan]이었다.
방법을 찾아보다가 reapeat이라는 메서드가 있는 걸 알아내서 문제를 풀었고 결론은 성공했다.
결과값을 보여주기 위해 하나의 빈 배열을 더 만들었는데 그렇게 하고 싶지 않았지만 더이상의 방법을 모르겠어서 아래와 같이 했다.
하지만 조금 아쉬운 부분이 있어서 다른 풀이를 참고한 부분도 같이 적어보겠다.

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

let arr = [];
let arr1=[];

rl.on('line', (str) => {
    arr = str.split(' ');
    rl. close();
}).on('close', () => {
    arr1= arr[0].repeat(Number(arr[1]));
    console.log(arr1);
    process.exit();
});

// 내가 원하는 결과
let input = [];

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

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

문제 설명
영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.

제한사항

  • 1 ≤ str의 길이 ≤ 20
    - str은 알파벳으로 이루어진 문자열입니다.

입력 #1
aBcDeFg

출력 #1
AbCdEfG

[나의 풀이]

for 반복문을 이용해 문제를 풀었다.
반복문과 메서드를 사용해서 문제를 풀어야 하는것 까진 인지했지만 메서드가 기억이 나지 않아 mdn을 참고했고, 누적하는 방식을 이용하여 빈 문자열을 하나씩 채워나갔다.
마지막에 console.log 부분에 return을 넣었다가 결과가 안나왔다.

console.log와 return의 차이

console.log()는 이전에 정의된 모든 종류의 변수를 인쇄하거나 사용자에게 표시해야 하는 메시지를 인쇄하는 데 사용되는 JavaScript의 함수
return 명령문은 함수 실행을 종료하고, 주어진 값을 함수 호출 지점으로 반환
결괏값을 저장(호출 지점으로 반환)을 하지만 출력(호출)을 하진 않는다.

return을 해도 답이 나오지 않았던 이유는 return은 출력을 하지 않기 때문이다.....

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

let answer = '';

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

5. 특수문자 출력하기

문제 설명
다음과 같이 출력하도록 코드를 작성해 주세요.

출력 예시
!@#$%^&*(\'"<>?:;

[나의 풀이]

`` 방법 외에는 생각이 나지 않아 찾아보았다.

  • 작은따옴표와 역슬래시 문자는 이스케이프(escape) 시퀀스로 처리해야 합니다.
  • 즉, 작은따옴표는 \'로, 역슬래시는 \로 표기해야 합니다. 그렇지 않으면 문법 오류가 발생합니다.

역슬래시 부분을 \\로 변경하여 출력할 수 있었다.

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

rl.on('close', function () {
    console.log(`!@#$%^&*(\\'"<>?:;`);
});
profile
자라나라 나무나무

0개의 댓글