devlog_owen
[프로그래머스] 이상한 문자 만들기 본문
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
'algorithm > (js)프로그래머스' 카테고리의 다른 글
[프로그래머스] 콜라츠 추측 (0) | 2023.11.06 |
---|---|
[프로그래머스] 크기가 작은 부분문자열 (0) | 2023.11.06 |
[프로그래머스] 최소직사각형 (0) | 2023.11.05 |
[프로그래머스] 삼총사 (0) | 2023.11.05 |
[프로그래머스] 3진법 뒤집기 (0) | 2023.11.05 |