[프로그래머스] 이상한 문자 만들기

Narcoker·2022년 9월 13일
0

코딩테스트

목록 보기
25/150

문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

제한 사항

문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

입출력 예

풀이

입력값 s를 split() 을 이용해 단어 별로 배열에 저장한다.
배열에서 단어 하나씩 가져와서 문자를 아스키코드로 변환한다.
아스키 코드값 과 문자의 인덱스 값이 조건에 일치하는지 확인한 후
대문자, 소문자로 변환하고 temp 문자열에 문자를 추가한다.
일치하지 않는 경우 원래 문자를 추가한다.
이를 reduce()이용하여 word에 저장하고 join()를 이용하여 문자열을 반환한다.

function solution(s) {
    let words = s.split(" ").reduce((arr, word) => {
        let temp = "";
        for (let i = 0; i < word.length; i++) {
            let ascii = word[i].charCodeAt(0);
            let c;
            if (ascii >= 97 && ascii <= 122 && i % 2 === 0) {
                c = word[i].toUpperCase();
            } else if (ascii >= 65 && ascii <= 90 && i % 2 === 1) {
                c = word[i].toLowerCase();
            } else {
                c = word[i];
            }
            temp += c;
        }
        arr.push(temp);
        return arr;
    }, [])
    return words.join(" ");
}
profile
열정, 끈기, 집념의 Frontend Developer

0개의 댓글