본문 바로가기
코딩테스트/LV. 1

LV. 1 :: 이상한 문자 만들기

by KUROMI98 2023. 1. 27.

https://school.programmers.co.kr/learn/courses/30/lessons/12930

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(s) 
{
    var arr = s.split('');
    
    var upper = s.toUpperCase(); 
    // 문자열 전체를 대문자로 바꿔준 문자열을 upper라고 한다
    var upper_arr = upper.split(''); 
    // 그 문자열을 전부 다 배열로 바꿔준다
    
    var lower = s.toLowerCase(); 
    // 문자열 전체를 소문자로 바꿔준 문자열을 lower라고 한다
    var lower_arr = lower.split(''); 
    // 그 문자열 전부 다 배열로 바꿔준다
    
    //--------------------------------------------------------
    
    var trynumber = 0; // 시도의 횟수를 0이라고 한다
    
    for (i=0; i<s.length; i++)
    {
        
        if (arr[i]!==' ') 
        { // arr의 원소가 공백이 아닌 문자라면,
            if (trynumber%2==0) {arr[i] = upper_arr[i];} 
            // 시도의 횟수가 짝수일 때는 짝수번째 원소를 대문자로 바꿔주고
            else if (trynumber%2==1) {arr[i] = lower_arr[i];}
            // 시도의 횟수가 홀수일 때는 홀수번째 원소를 소문자로 바꿔주고
            trynumber += 1;
            // 시도의 횟수를 하나씩 늘려나간다
        }
        
        else 
        { // 공백을 마주하면
            trynumber = 0;
            // 시도의 횟수를 초기화해준다.
        }
        
    }
    
    //--------------------------------------------------------
    
    return arr.join('');
}

'코딩테스트 > LV. 1' 카테고리의 다른 글

LV. 1 :: 3진법 뒤집기  (0) 2023.01.28
LV. 1 :: 2016년  (0) 2023.01.27
LV. 1 :: 완주하지 못한 선수  (0) 2023.01.27
LV. 1 :: 최대공약수와 최소공배수  (0) 2023.01.24
LV. 1 :: 문자열 다루기 기본  (0) 2023.01.24

댓글