문제 :
내 풀이 :
첫 번째 오답 :
function solution(s) {
let firstWordUpperCase = "";
let secondWordUpperCase = "";
let thirdWordUpperCase = "";
const [firstWord, secondWord, thirdWord] = s.split(" ");
for(let i = 0; i< firstWord.length; i++) {
if(i % 2 === 0) {
firstWordUpperCase += firstWord[i].toUpperCase();
} else {
firstWordUpperCase += firstWord[i];
}
}
for(let i = 0; i< secondWord.length; i++) {
if(i % 2 === 0) {
secondWordUpperCase += secondWord[i].toUpperCase();
} else {
secondWordUpperCase += secondWord[i];
}
}
for(let i = 0; i< thirdWord.length; i++) {
if(i % 2 === 0) {
thirdWordUpperCase += thirdWord[i].toUpperCase();
} else {
thirdWordUpperCase += thirdWord[i];
}
}
return ${firstWordUpperCase} ${secondWordUpperCase} ${thirdWordUpperCase};
}
두 번째 오답 :
function solution(s) {
function transformUpperCase(word) {
return [...word].map((char, i) =>
i % 2 === 0 ? char.toUpperCase() : char
).join('');
}
const [firstWord, secondWord, thirdWord] = s.split(" ");
const firstWordUpperCase = transformUpperCase(firstWord);
const secondWordUpperCase = transformUpperCase(secondWord);
const thirdWordUpperCase = transformUpperCase(thirdWord);
return `${firstWordUpperCase} ${secondWordUpperCase} ${thirdWordUpperCase}`;
}
통과 한 정답 :
function solution(s) {
let result = [];
const splitS = s.split(" ")
for ( let i = 0; i < splitS.length; i++) {
let alternateUpperCase = '';
for(let j = 0; j < splitS[i].length; j++) {
if (j % 2 === 0) {
alternateUpperCase += splitS[i][j].toUpperCase()
} else {
alternateUpperCase += splitS[i][j].toLowerCase()
}
}
result.push(alternateUpperCase)
}
return result.join(' ')
}
1. split() 메서드를 통해 주어진 문자열 s를 공백 기준으로 나누어 단어 배열로 만든다. 만약 s가 "hello world" 라면 [ "hello", "world" ]가 된다.
2. 첫 번째 for문에서 각 단어 ( splitS[ i ] )에 대해 반복한다. 1번에서의 예시와 같이 [ "hello", "world" ] 라면 splitS[ i ]는 "hello"이다.
3. 두 번째 for문에서 단어의 문자를 하나씩 처리한다. 위 예시처럼 splitS[i]는 "hello"일 때, j는 "hello"내의 특정 문자의 인덱스를 나타내고 예를 들면, splitS[0][1] 는 "hello"의 두 번째 문자이므로 "e"를 의미한다.
4. j % 2 === 0인 경우(짝수 인덱스), 문자를 대문자로 변환하고, 그렇지 않은 경우(홀수 인덱스) 소문자로 변환한다.
변환된 문자는 word에 추가된다.
'프로그래머스' 카테고리의 다른 글
[JavaScript] 최소직사각형 - 프로그래머스 (0) | 2024.08.27 |
---|---|
[JavaScript] 삼총사 - 프로그래머스 (0) | 2024.08.20 |
[JavaScript] 3진법 뒤집기 - 프로그래머스 (0) | 2024.08.16 |
[JavaScript] 최대공약수와 최소공배수 - 프로그래머스 (0) | 2024.08.14 |
[JavaScript] 문자열 다루기 기본 - 프로그래머스 (0) | 2024.08.13 |