이상한 문자 만들기

heejung·2021년 10월 9일

프로그래머스

목록 보기
8/76

출처

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

문제 설명

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

[제한 사항]

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

[입출력 예]

sreturn
"try hello world""TrY HeLlO WoRlD"

[입출력 예 설명]

"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다.

각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다.

따라서 "TrY HeLlO WoRlD" 를 리턴합니다.

문제 풀이

let solution = (s) => {
    let answer = '';
    let word = s.split(" ");
    
    for (let x of word) {
        for (let i = 0; i < x.length; i++) {
            if (i % 2 === 0) {
                answer += x[i].toUpperCase();
            } else {
                answer += x[i].toLowerCase();
            }
        }
        answer += " ";
    }
    return answer.slice(0, answer.length - 1);
}



spilt(구분자, [최대 분할 개수])

  1. 파라미터 없이 : 문자열 배열에 저장
const str = "apple banana orange";

const arr = str.split();  // arr = [apple banana orange]
  1. 공백으로 구분(" ") : 단어별로 배열에 저장
const str = "apple banana orange";

const arr = str.split(" ");  // arr = [apple, banana, orange]
  1. 한 글자씩 구분("") : 글자별로 배열에 저장
const str = "a b c";

const arr = str.split("");  // arr = [a, ' ', b, ' ', c]
  1. 최대 분할 개수 지정
const str = "apple,banana,orange";

const arr = str.split(",", 2);  // arr = [apple, banana] : 배열 2개까지만 생성

slice(start, end)

start 부터 end 미만까지 복사 → 새로운 배열 객체로 반환
**원본 배열은 수정되지 않는다.

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

var arr1 = arr.slice(3, 5); // arr1 = [4, 5]

splice(start, [제거할 요소의 수], [추가할 요소])

배열의 기존 요소에 추가 or 삭제 or 교체
**원본 배열 자체를 수정하고 제거한 요소를 담은 배열을 반환한다.

//인덱스 10부터 2개 삭제, a b c 추가
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
var arr1 = arr.splice(10, 2, 'a', 'b', 'c');  // arr1 = [11, 12]

console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "a", "b", "c"]
//제거x, 인덱스 5 이후 add 추가
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
var arr1 = arr.splice(5, 0, 'add');  // arr1 = []

console.log(arr); // [1, 2, 3, 4, 5, "add", 6, 7, 8, 9, 10, 11, 12]
profile
프론트엔드 공부 기록

0개의 댓글