출처: https://typemin.tistory.com/7 [TypeLOG:티스토리]

문제 : 

프로그래머스(programmers.co.kr)

 

풀이방식 : 

각 단어에 첫번째 글자는 0번째 인덱스로보아서 짝수번째로 처리해야된다고 제한사항에 나와있다 

중간에 스페이스바가 있으면 단어의 끝을 알려줌으로 다음문자는 짝수번째 즉 대문자가 나오게끔해주면된다 .

0번째 : 대문자 -> 1번째 : 소문자 -> 2번째 :대문자 ... 식으로 간다 .

bool 타입을 사용해서 홀수인지 짝수인지 판별한다 

!bool 은 bool 의 ture 가 있다고 가정해보자 그러면 !bool 은 false.   ture 반대이다 이런식으로 만들었다..

 

 

<>코드 : 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* s) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char* answer = (char*)malloc(1 * strlen(s) + 1); // 짝수번째 +1 은 NULL 문자 까지 
    
    strcpy(answer, s);  //strcpy () 함수를 이용해서 s의 값을 answer 의 복사해줌
    
    bool isodd = true; //bool type 을 선언하여 짝수인덱스인지를 판별
    
    for(int i = 0; i <strlen(s); i++)
    {
        if(answer[i] == ' ')  { //answer[i] 의 띄어쓰기 가 들어온다면 if 실행
            isodd = true;
            continue; // continue 를 사용하여 탈출
        }
        if(isodd) // bool type isodd 가 참 이라면 
            answer[i] = toupper(answer[i]);
        else
            answer[i] = tolower(answer[i]);
        
        isodd = !isodd;
        }
    

    return answer;
}

 

 

반응형

+ Recent posts