문자열 섞기

문제 설명

길이가 같은 두 문자열 str1과 str2가 주어집니다.

두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.

제한사항
  • 1 ≤ str1의 길이 = str2의 길이 ≤ 10
    • str1과 str2는 알파벳 소문자로 이루어진 문자열입니다.

입출력 예

str1 str2 result
"aaaaa" "bbbbb" "ababababab"

작성한 코드

function solution(str1, str2) {
    var answer = '';
    
    for(let i = 0; i < str1.length; i++){
        answer += str1[i] + str2[i];
    }
    
    return answer;
}

문자 리스트를 문자열로 변환하기

문제 설명

문자들이 담겨있는 배열 arr가 주어집니다. arr의 원소들을 순서대로 이어 붙인 문자열을 return 하는 solution함수를 작성해 주세요.

제한사항
  • 1 ≤ arr의 길이 ≤ 200
    • arr의 원소는 전부 알파벳 소문자로 이루어진 길이가 1인 문자열입니다.

입출력 예

arr result
["a","b","c"] "abc"

작성한 코드

function solution(arr) {
    var answer = '';
    answer = arr.join('');
    return answer;
}

해설

join()은 배열 요소 사이에 지정한 구분자를 넣어 연결하지만 공백 없이 붙일 때는 join('')처럼 빈 문자열을 구분자로 사용 가능


문자열 곱하기

문제 설명

문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항
  • 1 ≤ my_string의 길이 ≤ 100
  • my_string은 영소문자로만 이루어져 있습니다.
  • 1 ≤ k ≤ 100

입출력 예

my_string k result
"string" 3 "stringstringstring"
"love" 10 "lovelovelovelovelovelovelovelovelovelove"
입출력 예 설명

입출력 예 #1

  • 예제 1번의 my_string은 "string"이고 이를 3번 반복한 문자열은 "stringstringstring"이므로 이를 return 합니다.

입출력 예 #2

  • 예제 2번의 my_string은 "love"이고 이를 10번 반복한 문자열은 "lovelovelovelovelovelovelovelovelovelove"이므로 이를 return 합니다.

작성한 코드

function solution(my_string, k) {
    return my_string.repeat(k);
}

더 크게 합치기

문제 설명

연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.

  • 12 ⊕ 3 = 123
  • 3 ⊕ 12 = 312

양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.

단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.

제한사항
  • 1 ≤ a, b < 10,000

입출력 예

a b result
9 91 991
89 8 898
입출력 예 설명

입출력 예 #1

  • a ⊕ b = 991 이고, b ⊕ a = 919 입니다. 둘 중 더 큰 값은 991 이므로 991을 return 합니다.

입출력 예 #2

  • a ⊕ b = 898 이고, b ⊕ a = 889 입니다. 둘 중 더 큰 값은 898 이므로 898을 return 합니다.

작성한 코드

function solution(a, b) {
    const ab = Number(String(a) + String(b));
    const ba = Number(String(b) + String(a));
    return ab > ba ? ab : ba;
}

다른 사람의 코드

function solution(a, b) {
    return Math.max(Number(`${a}${b}`), Number(`${b}${a}`))
}

해설

숫자를 문자열로 바꾸고 + 연산으로 이어붙인 뒤, Number()로 다시 숫자로 변환.
그 둘 중 더 큰 값을 삼항 연산자로 비교해 반환

Math 함수를 사용해서 값을 비교하는 것도 가능


두 수의 연산값 비교하기

문제 설명

연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.

  • 12 ⊕ 3 = 123
  • 3 ⊕ 12 = 312

양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 * a * b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.

단, a ⊕ b와 2 * a * b가 같으면 a ⊕ b를 return 합니다.

제한사항
  • 1 ≤ a, b < 10,000

입출력 예

a b result
2 91 364
91 2 912
입출력 예 설명

입출력 예 #1

  • a ⊕ b = 291 이고, 2 * a * b = 364 입니다. 둘 중 더 큰 값은 364 이므로 364를 return 합니다.

입출력 예 #2

  • a ⊕ b = 912 이고, 2 * a * b = 364 입니다. 둘 중 더 큰 값은 912 이므로 912를 return 합니다.

작성한 코드

function solution(a, b) {
    const ab = Number(String(a) + String(b));
    const ab2 = Number(Number(a) * Number(b) * 2);
    return ab >= ab2 ? ab : ab2;
}

'코딩 테스트 준비 > JavaScript' 카테고리의 다른 글

[Programmers] JavaScript - Day2  (0) 2025.04.17
[Programmers] JavaScript - Day1  (1) 2025.04.16

덧셈식 출력하기

문제 설명

두 정수 a, b가 주어질 때 다음과 같은 형태의 계산식을 출력하는 코드를 작성해 보세요.

a + b = c

제한사항
  • 1 ≤ a, b ≤ 100

입출력 예

입력 #1

4 5

출력 #1

4 + 5 = 9​

작성한 코드

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 a = Number(input[0]);
    const b = Number(input[1]);
    const sum = a + b;
    
    console.log(a + " + " + b + " = " + sum);
});

개념 정리

const [a, b] = line.split(' ').map(Number) 식으로 split과 동시에 Number 형태를 부여하는 것도 가능


문자 리스트를 문자열로 변환하기

문제 설명

두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다.
입출력 예와 같이 str1과 str2을 이어서 출력하는 코드를 작성해 보세요.

제한사항
  • 1 ≤ str1, str2의 길이 ≤ 10
입출력 예

입력 #1

apple pen

출력 #1

applepen

입력 #2

Hello World!

출력 #2

HelloWorld!

작성한 코드

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);
});

 


문자열 돌리기

문제 설명

문자열 str이 주어집니다.
문자열을 시계방향으로 90도 돌려서 아래 입출력 예와 같이 출력하는 코드를 작성해 보세요.

제한사항

1 ≤ str의 길이 ≤ 10

입출력 예

입력 #1

abcde

출력 #1

a
b
c
d
e

작성한 코드

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];
    
    if (input.length === 1) {
        for (let char of str) {
            console.log(char);
        }
    } else {
        console.log(input.reverse().join(''));
    }
});

개념 정리

가로에서 세로로 돌리기와 세로에서 가로로 돌릴때의 경우의 수를 생각해서 코드를 구현

input값이 1개 일 때에는 반복문을 이용해 원소 하나씩 출력하고 원소가 세로로 하나씩 주어질 때에는 reverse를 통해 순서를 뒤집고 join으로 합침.


문자열 겹쳐쓰기

 

문제 설명

문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항
  • my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
  • 0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이
입출력 예
my_string overwrite_string s result
"He11oWor1d" "lloWorl" 2 "HelloWorld"
"Program29b8UYP" "merS123" 7 "ProgrammerS123"

입출력 예 설명

입출력 예 #1

  • 예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다.

입출력 예 #2

  • 예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"이고 이를 "merS123"로 바꾼 "ProgrammerS123"를 return 합니다.

작성한 코드

function solution(my_string, overwrite_string, s) {
    var answer = '';
    
    answer += my_string.slice(0, s);
    answer += overwrite_string;
    answer += my_string.slice(s + overwrite_string.length);
    
    return answer;
}

 

'코딩 테스트 준비 > JavaScript' 카테고리의 다른 글

[Programmers] JavaScript - Day3  (0) 2025.04.17
[Programmers] JavaScript - Day1  (1) 2025.04.16

문자열 출력

문제 설명

문자열 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
});

let input = [];

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

회고

realine 은 Node.js에서 표준 입력(키보드 입력)을 받을 때 사용하는 기본 도구(모듈)임.

rl.on('line', callback) 은 line 이라는 변수로 입력값을 받는 것, 그걸 console.log로 출력


a와 b 출력하기

문제 설명

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

제한사항
  • -100,000 ≤ a, b ≤ 100,000
입출력 예

입력 #1

4 5

출력 #1

a = 4
b = 5

작성한 코드

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 a = Number(input[0]);
    const b = Number(input[1]);

    console.log(`a = ${a}`);
    console.log(`b = ${b}`);});

개념 정리

 

split(' ') 은 문자열을 공백 기준으로 나눠 배열로 만들어주는 역할을 함.

Number()은 문자열을 숫자로 바꿔줌.

${} 템플릿 문자열 `` 안에서 사용 가능하고 안에 넣은 변수의 값을 출력 가능함.


a + b 출력하기

문제 설명

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

제한사항
  • 1 ≤ str의 길이 ≤ 10
  • 1 ≤ n ≤ 5
입출력 예

입력 #1

string 5

출력 #1

stringstringstringstringstring
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 () {
    str = input[0];
    n = Number(input[1]);
    
    console.log(str.repeat(n));
});

개념 정리

 

repeat() 은 문자열을 반복해서 출력이 가능함. 단, repeat은 문자열에만 사용이 가능하다.

for 문을 사용하는 것도 가능하지만 2개의 방식이 미묘한 차이점이 있음.

repeat() for문
내장 함수라서 속도가 빠름 조건 추가, 중간 로직 삽입이 가능함
간단한 반복이라면 가장 간결하고 가독성이 좋음 인덱스 별로 다른 처리를 하는 등 상황에 따라 더 유연함

대소문자 바꿔서 출력하기

문제 설명

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

제한사항
  • 1 ≤ str의 길이 ≤ 20
    • str은 알파벳으로 이루어진 문자열입니다.
입출력 예

입력 #1

aBcDeFg

출력 #1

AbCdEfG​
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];
    let answer = "";
    
    for(let char of str){
        if(char == char.toUpperCase()){
            answer += char.toLowerCase();
        } else{
            answer += char.toUpperCase();
        }
    }
    
    console.log(answer);
});

개념 정리

 

== 뒤에 toUpperCase 혹은 toLowerCase를 사용하면 대소문자인지 판별하는 코드가 되고

+= 뒤에 붙여 사용하면 해당 문자를 대소문자 변환 하여 추가하는 코드가 됨.

 const result = str
        .split('')
        .map(char => {
            return char === char.toUpperCase()
                ? char.toLowerCase()
                : char.toUpperCase();
        })
        .join('');

이런 식으로 map과 ? 삼항 연산자를 이용하여 변환하고 join으로 합치는 방식도 가능함.


특수문자 출력하기

문제 설명

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

출력 예시

!@#$%^&*(\'"<>?:;​
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

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

개념 정리

 

다른 특수문자들은 평범하게 문자열 방식으로 출력 가능하고

', " 같은 문자열 안의 따옴표는 \ 를 붙여 처리해야 출력이 가능함.

'코딩 테스트 준비 > JavaScript' 카테고리의 다른 글

[Programmers] JavaScript - Day3  (0) 2025.04.17
[Programmers] JavaScript - Day2  (0) 2025.04.17

+ Recent posts