프로그래머스 Day - 3

ᵁ-ᴷᴺᴼᵂᴺ·2023년 5월 19일
post-thumbnail

1. 문자열 섞기

목표 : 길이가 같은 문자열을 교차로 출력

//입력(str1, str2)
"aaaaa", "bbbbb"
//출력
"ababababab"
function solution(str1, str2) {
    let string = '';
    for(var i=0; i<str1.length; i++){
        string += str1[i] + str2[i];
    }
    return string;
}
  • 빈 문자열을 만들고, 문자열의 길이만큼 반복한다.
  • 빈 문자열에 str1와 str2의 문자열의 각 인덱스의 문자를 더해서 저장한다.

2. 문자 리스트를 문자열로 출력

목표 : 문자로 된 배열을 문자열로 출력

//입력
["a","b","c"]
//출력
"abc"
function solution(arr) {
    return arr.join('');
}
  • 배열을 문자로 이어 붙혀주는 join('')함수를 이용했다.

3. 문자열 곱하기

목표 : 문자열을 입력 정수만큼 여러번 출력

//입력(my_string, k)
"string", 3
//출력
stringstringstring
function solution(my_string, k) {
    return my_string.repeat(k);
}
  • repeat(count)는 앞서오는 문자열을 count만큼 반복해 붙여 반환한다.

4. 더 크게 합치기

목표 : a⊕b와 b⊕a 중 더 큰 값을 출력

Ex) a⊕b는 12 ⊕ 6 = 126이다.(⊕는 배타적 논리합이다.)

//입력(a, b)
9, 91
//출력
991
function solution(a, b) {
    return Math.max(Number(`${a}${b}`), Number(`${b}${a}`))
}
  • Math.max() 는 괄호안에 들어가는 가장 큰값을 반환한다. 즉 A>B일때, Math.max(A,B)이면 A를 반환한다.
  • ${}[표현식 삽입] 이라고 하는데, 변수나 연산 등을 수행하여 넣을 수 있다.
  • Number() 함수를 사용하여 표현식 삽입으로 반환된 문자열을 숫자로 바꿔준다.

5. 두 수의 연산값 비교하기

a⊕b와 2 x a x b 중 더 큰 값을 출력

만약 두 연산이 같은 값이라면, a⊕b를 출력한다.

//입력(a, b)
2, 91
//출력
// a⊕b = 291, 2*a*b = 364
364
function solution(a, b) {
    let num1 = Number(`${a}${b}`);
    let num2 = 2*a*b;
    return (num1 >= num2 ? num1 : num2);
}
  • 위에서 사용했던 표현식 삽입을 사용하여 num1에 a⊕b를 수행한 결과를 저장한다.
  • num2에 2 x a x b를 연산한 결과를 저장한다.
  • 3항 연산자를 사용해 num1과 num2를 비교하여 출력한다.
profile
ΔIM ΩΠ ҒULLSTΔCҜ

0개의 댓글