728x90
반응형

1. 문제점

프로그래머스 알고리즘 문제풀이 - 자바스크립트 [대문자와 소문자]

2. 시도해본 것들

 

문제를 보고 for문을 이용해

첫번째 인덱스가 대문자라면(if) 소문자로! 소문자라면(if) 대문자로!

노가다하기로 결심했다.

바꾸는 과정은 아는데 if문에서 소문자인지 대문자인지 어떻게 알 수 있을까..?

 

3. 해결과정

해결방법은 arr[i] 와 변환시켜둔 arr[i].toLowercase() 가 같은지 확인하면 되는 것 이었다.

배열값을 두고 이게 소문자로 변환시킨 배열값과 동일한가?

 

if( arr[i] == arr[i].toLowerCase() )

 

4. 알게 된 점

 

나의 문제풀이

function solution(my_string) {
    var answer = [];
    var arr = Array.from(my_string);
    for(i=0; i<my_string.length; i++){
        if(arr[i] == arr[i].toLowerCase() ){
           answer[i] = arr[i].toUpperCase()
        } else {
             answer[i] = arr[i].toLowerCase()
        }
    }
    return answer.join('');
}

이제 문자열 <=> 배열 왔다갔다 하는건 익숙해진듯 하다.

마지막 배열을 join('')까지 익숙해졌다.

 

 

남의 문제풀이

function solution(my_string) {
    var answer = '';
    for (let c of my_string) answer += c === c.toLowerCase() ? c.toUpperCase() : c.toLowerCase();
    return answer;
}

문자열만으로 해결

게다가 삼항연산자로 깔끔하게 해결되었다. 위와 같이 풀 수 있도록 연습해야지.

728x90
반응형

+ Recent posts