250x250
Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

devlog_owen

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

algorithm/(js)프로그래머스

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

developer_owen 2023. 11. 5. 23:33
728x90

문제

 

1. 공백문자를 기준으로 단어 구분
2. 인덱스 +2씩 대문자로 바꾸기

=> 결국 이렇게 안됨

 

 


 

 

나의 풀이

function solution(s) {
    let separate = s.split(' ');
    let strangeWords = separate.map((word, index) => {
        let strangeWord = '';
        for (let i = 0; i < word.length; i++) {
            if (i % 2 === 0) {
                strangeWord += word[i].toUpperCase();
            } else {
                strangeWord += word[i].toLowerCase();
            }
        }
        return strangeWord;
    });

    return strangeWords.join(' ');
}

 

1. 공백문자를 기준으로 단어 구분
 let separate = s.split(' '); // ["Hello", "World"]

s.split(' ')를 사용하여 문자열을 공백 문자로 분리한 문자열 배열 생성

 

2. 배열 안의 바꿀 요소들을 지정

separate.map((word, index) => ....

 separate 배열의 각 요소 (word)에 대해서 변환을 수행해줌

처음으로 word는 "Hello", index는 0
두 번째로 word는 "World", index는 1

 

3. 반복문,조건문을 사용해서 짝수번째 인덱스에 해당하는 문자는 대문자, 그렇지 않은 문자는 소문자로 만든다

for (let i = 0; i < word.length; i++) {
            if (i % 2 === 0) {
                strangeWord += word[i].toUpperCase();
            } else {
                strangeWord += word[i].toLowerCase();
            }

 

4. 새로운 문자열인 strangeWord에 저장

return strangeWord

 

5. strangeWord 배열을 join 메서드를 사용해서 단어 사이에 공백을 추가하여 하나의 문자열로 만든다

return strangeWords.join(' ')

 


 

다른 사람 풀이

 

본문1


 

회고

 

toUpperCase를 예전에 한번 분명 써봤는데 까먹었다... 또, 이렇게 배열 사이의 요소를 건드리는 걸 아직 잘 못하는거 같다. map 함수를 더 잘 쓸 줄 알아야할 것 같다. 


 

 

 

 

728x90