본문 바로가기
codingtest

[programmers] 문자열 겹쳐쓰기, 문자 리스트를 문자열로 변환하기, 홀짝 구분하기, 문자열 곱하기, 문자열 섞기

by 안자두 2023. 5. 14.

📝 [Lv0] 문자열 겹쳐쓰기

👀 문제 설명

문자열 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"

 

✨ 풀이 설명

원본의 s까지와 덮어쓰는 문자열, 원본에서 남은 길이를 이어서 반환해 주었다.
slice()로 문자열을 잘라 새로운 문자열로 만들어 주었다.

 

🕵️‍♂️ 코드

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

 


📝 [Lv0] 문자 리스트를 문자열로 변환하기

👀 문제 설명

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

 

🚨 제한 사항

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

 

💻 입출력 예

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

 

✨ 풀이 설명

join()을 이용해 배열을 하나의 문자열로 연결해 주었다.

 

🕵️‍♂️ 코드

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

 


📝 [Lv0] 홀짝 구분하기

👀 문제 설명

자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd."를 출력하는 코드를 작성해 보세요.

 

🚨 제한 사항

  • 1 ≤ n ≤ 1,000

 

💻 입출력 예

입력 #1

100

출력 #1

100 is even

입력 #2

1

출력 #2

1 is odd

 

✨ 풀이 설명

입력이 문자열로 주어지기 때문에 숫자로 변환해 줄 필요가 있다. 더하기 연산자로 쉽게 형변환을 해준 후, 2로 나눈 나머지가 존재한다면 odd, 존재하지 않는다면 even을 넣어 문자열을 반환해 주었다.

 

🕵️‍♂️ 코드

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 () {
  console.log(`${input} is ${input % 2 ? 'odd' : 'even'}`)
});

 


📝 [Lv0] 문자열 곱하기

👀 문제 설명

문자열 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"

 

✨ 풀이 설명

repeat()으로 문자열을 반복해서 새로운 문자열을 만들어주었다.

 

🕵️‍♂️ 코드

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

 


📝 [Lv0] 문자열 섞기

👀 문제 설명

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

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

 

🚨 제한 사항

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

 

💻 입출력 예

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

 

✨ 풀이 설명

str1을 배열로 만든 다음, reduce()로 res에 str1의 문자 하나씩인 char와 str2의 i번째를 순차적으로 이어 붙여 반환해 주었다.

 

🕵️‍♂️ 코드

function solution(str1, str2) {
  return [...str1].reduce((res, char, i) => res + char + str2[i], '');
}

 

728x90

'codingtest' 카테고리의 다른 글

[programmers] 불량 사용자  (0) 2023.05.17
[programmers] 야근 지수  (0) 2023.05.16
[programmers] 택배상자  (1) 2023.05.11
[programmers] 숫자 카드 나누기  (0) 2023.05.10
[programmers] 요격 시스템  (0) 2023.05.09