728x90
문제
틀린 풀이
function solution(s) {
var answer = '';
let count = 0;
s = s.split(' ');
for(let i= 0; i < s.length; i++)
{
if(count == 0)
{
s[i] = s[i].toUpperCase();
count++;
}
else if(!s[i])
{
count = 0;
}
else if(count % 2 == 0)
{
s[i] = s[i].toUpperCase();
count++;
}
else
{
s[i] = s[i].toLowerCase();
count++;
}
}
s= s.join('');
return s;
}
맞은 풀이
function solution(s) {
var answer = '';
let count = 0;
s = s.split(' ');
for(let i= 0; i < s.length; i++)
{
for(let j =0; j < s[i].length; j++)
{
if(j% 2 === 0)
{
answer += s[i][j].toUpperCase();
}
else if(j% 2 !== 0)
{
answer += s[i][j].toLowerCase();
}
}
if(i !== s.length -1)
{
answer += (' ');
}
}
return answer;
}
해석
두개의 풀이를 가져왔는데 하나는 처음엔 for을 하나만 쓰고, count라는 따로 변수를 사용해서 count가 짝수면 UpperCase 아니라 홀수면 LowerCase하는 방법으로 시도했다. 하지만 계속 제출을 해도 실패하여서 왜일까 고민해봤는데 문자열에 공백이 두번이상 들어가면 뭔가 틀릴것같다는 생각이 들었다.
그래서 생각한 두번째 방법이 이중for문이다. split(' ')으로 띄워쓴 부분을 위주로 나눠주고 answer에 따로 += 해주는 방법을 이용해서 문제를 해결하였다. 마지막에 if(i !== s.length -1) 을 이용하여 모든 코드가 돌고 끝난 부분에 공백이 들어가지 않게 해주었다.
'코딩 > 코딩테스트' 카테고리의 다른 글
[프로그래머스/JS] 시저 암호 (0) | 2024.05.30 |
---|---|
[프로그래머스/JS] 최소직사각형 (0) | 2024.05.29 |
[프로그래머스/JS] 3진법 뒤집기 (0) | 2024.05.24 |
[프로그래머스/JS] 최대공약수와 최소공배수 (0) | 2024.05.23 |
[프로그래머스/JS]직사각형 별찍기 (0) | 2024.05.22 |