본문 바로가기
프로그래머스 코딩 테스트

프로그래머스 : JavaScript 알고리즘 100일 챌린지 41일차

by dongjin6539 2023. 6. 25.
728x90
반응형

프로그래머스 : JavaScript 알고리즘 100일 챌린지 41일차

 

코딩 기초 트레이닝 Day41

 

 

1. 대문자로 바꾸기 : 알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 대문자로 변환하여 return 하는 solution 함수를 완성해 주세요.

function solution(myString) {
    var answer = '';
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
myString result
"aBcDeFg" "ABCDEFG"
"AAA" "AAA"

 

답 확인하기
function solution(myString) {
    return myString.toUpperCase()
}

 

해설 확인하기

주어진 코드는 solution이라는 함수를 정의하고, 해당 함수는 입력된 myString 문자열을 대문자로 변환하여 반환합니다.

함수의 기능을 요약하면 다음과 같습니다:

solution 함수를 호출할 때, 문자열을 인자로 전달해야 합니다.

함수는 전달된 문자열을 대문자로 변환합니다.

변환된 대문자 문자열을 반환합니다.

예를 들어, solution("Hello, World!")를 호출하면 반환 값으로 "HELLO, WORLD!"가 나올 것입니다.

 

2. 소문자로 바꾸기 : 알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 소문자로 변환하여 return 하는 solution 함수를 완성해 주세요.

function solution(myString) {
    var answer = '';
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
myString result
"aBcDeFg" "abcdefg"
"aaa" "aaa"

 

답 확인하기
function solution(myString) {
    return myString.toLowerCase()
}

 

해설 확인하기

주어진 코드는 solution이라는 함수를 정의하고, 해당 함수는 입력된 myString 문자열을 소문자로 변환하여 반환합니다.

함수의 기능을 요약하면 다음과 같습니다:

solution 함수를 호출할 때, 문자열을 인자로 전달해야 합니다.

함수는 전달된 문자열을 소문자로 변환합니다.

변환된 소문자 문자열을 반환합니다.

예를 들어, solution("Hello, World!")를 호출하면 반환 값으로 "hello, world!"가 나올 것입니다.

 

3. 배열에서 문자열 대소문자 변환하기 : 문자열 배열 strArr가 주어집니다. 모든 원소가 알파벳으로만 이루어져 있을 때, 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인덱스의 문자열은 모든 문자를 소문자로 바꿔서 반환하는 solution 함수를 완성해 주세요.

function solution(strArr) {
    var answer = [];
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
strArr result
["AAA", "BBB", "CCC", "DDD"] ["aaa", "BBB", "ccc", "DDD"]
["aBc", "AbC"] ["abc", "ABC"]

 

 

답 확인하기
function solution(strArr) {
    for(let i = 0 ; i < strArr.length ; i ++) {
        if(!Number.isNaN(Number(strArr[i]))) continue
        
        strArr[i] = i%2 === 0 ? strArr[i].toLowerCase() : strArr[i].toUpperCase()
    }
    
    return strArr
}

 

해설 확인하기

주어진 코드는 solution이라는 함수를 정의하고, 해당 함수는 문자열 배열 strArr을 입력으로 받습니다. 함수는 배열 내의 요소들을 처리하여 변환된 배열을 반환합니다.

함수의 동작을 요약하면 다음과 같습니다:

solution 함수를 호출할 때, 문자열 배열을 인자로 전달해야 합니다.

함수는 배열 내의 각 요소에 대해 반복문을 실행합니다.

요소가 숫자가 아닌 경우(즉, 문자열인 경우)에만 처리를 수행합니다.

문자열이 짝수 인덱스에 있는 경우 소문자로 변환하고, 홀수 인덱스에 있는 경우 대문자로 변환합니다.

변환된 요소들로 이루어진 새로운 배열을 반환합니다.

예를 들어, solution(["Hello", "World", "123", "abc"])를 호출하면 반환 값으로 ["hello", "WORLD", "123", "ABC"]가 나올 것입니다. 변환 과정에서 "Hello"는 짝수 인덱스에 위치하므로 소문자로 변환되고, "World"는 홀수 인덱스에 위치하므로 대문자로 변환됩니다. "123"과 "abc"는 숫자와 문자가 아니기 때문에 변환되지 않고 그대로 유지됩니다.

 

4. A 강조하기 : 문자열 myString이 주어집니다. myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요.

function solution(myString) {
    var answer = '';
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
myString result
"abstract algebra" "AbstrAct AlgebrA"
"PrOgRaMmErS" "progrAmmers"

 

답 확인하기
function solution(myString) {
    return [...myString.replaceAll('a', 'A')].map(a => (a.charCodeAt() > 65 && a.charCodeAt() < 97) ? a.toLowerCase() : a).join("")
}

 

해설 확인하기

주어진 코드는 solution이라는 함수를 정의하고, 해당 함수는 입력된 myString 문자열을 처리하여 변환된 문자열을 반환합니다.

함수의 동작을 요약하면 다음과 같습니다:

solution 함수를 호출할 때, 문자열을 인자로 전달해야 합니다.

함수는 myString에서 모든 'a'를 'A'로 대체합니다. (replaceAll 함수를 사용하여 수행)

변환된 문자열을 배열로 변환한 뒤, 각 문자에 대해 반복문을 실행합니다.

각 문자의 유니코드를 확인하여, 해당 문자가 대문자인 경우 소문자로 변환하고, 그렇지 않으면 그대로 유지합니다.

변환된 문자들로 이루어진 배열을 다시 문자열로 결합하여 반환합니다.

예를 들어, solution("Hello, World!")를 호출하면 반환 값으로 "Hello, World!"가 나올 것입니다. 이는 입력된 문자열에 'a'가 없으므로 대체 과정이 발생하지 않고, 대문자와 소문자 변환도 필요하지 않기 때문입니다.

하지만, 만약 solution("abc ABC")를 호출한다면 반환 값으로 "Abc abc"가 나올 것입니다. 'a'가 'A'로 대체되었으며, 대문자 'A'는 소문자로 변환되었습니다.

 

5. 특정한 문자를 대문자로 바꾸기 : 소문자로 이루어진 문자열 my_string과 영소문자 1글자로 이루어진 문자열 alp가 매개변수로 주어질 때, my_string에서 alp에 해당하는 모든 글자를 대문자로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

function solution(my_string, alp) {
    var answer = '';
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
my_string alp return
"programmers" "p" "Programmers"
"lowercase" "x" "lowercase"

 

답 확인하기
function solution(my_string, alp) {
    return my_string.replaceAll(alp, alp.toUpperCase());
}

// replaceAll :  pattern의 모든 일치 항목이 replacement로 대체된 새 문자열을 반환합니다. pattern은 문자열 또는 RegExp일 수 있으며 replacement는 각 일치 항목에 대해 호출되는 문자열 또는 함수일 수 있습니다. 원래 문자열은 변경되지 않습니다.

 

해설 확인하기

주어진 코드는 solution이라는 함수를 정의하고, 해당 함수는 입력된 my_string 문자열에서 특정 알파벳(alp)을 대문자로 변환하여 반환합니다.

함수의 동작을 요약하면 다음과 같습니다:

solution 함수를 호출할 때, 두 개의 인자를 전달해야 합니다. 첫 번째 인자는 문자열이고, 두 번째 인자는 대문자로 변환할 특정 알파벳입니다.

함수는 my_string 문자열에서 모든 alp를 대문자로 대체합니다. (replaceAll 함수를 사용하여 수행)

변환된 문자열을 반환합니다.

예를 들어, solution("Hello, World!", "o")를 호출하면 반환 값으로 "HellO, WOrld!"가 나올 것입니다. 'o'가 대문자 'O'로 대체되었습니다.

또 다른 예로, solution("Hello, World!", "l")를 호출하면 반환 값으로 "HeLLo, WorLd!"가 나올 것입니다. 'l'이 대문자 'L'로 대체되었습니다.

주의: replaceAll 함수는 ES2021 이상에서 사용 가능한 기능입니다. 이 코드를 구동하기 위해서는 환경이 ES2021 이상을 지원해야 합니다.

728x90
반응형