Algorithm/Programmers

[Programmers - lv01] 이상한 문자 만들기 (cpp / python)

  • -
728x90

이상한 문자 만들기

 

코딩테스트 연습 - 이상한 문자 만들기

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을

programmers.co.kr

문제 설명

공백을 기준으로 문자열을 잘라 해당 문자열의 홀수 번째와 짝수 번째를 처리하는 문제.


스플릿으로 공백을 기준으로 문자열을 자르면될 것 같지만, 공백이 2개 이상 들어왔을 때 처리할 수가 없다.


따라서 직접 스플릿을 구현하여 푸는 문제이다. c++은 원래 구현을해야겠지만(split함수가 존재하지 않음) python같은 경우엔 split이 있어도 쓰지 못한다.

문제 풀이

소스코드 : C++

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    string answer = "";
    string tmp = "";
    int idx =0;
    for(int i=0; i<=s.size(); i++){
        if(s[i] == ' ' || s[i] == '\0'){
            if(s[i] == ' ')tmp+=' ';
            answer +=tmp;
            tmp = "";
            idx = 0;
        }
        else{
            tmp += idx%2 == 0?toupper(s[i]):tolower(s[i]);
            idx++;
        }
    }
    return answer;
}

 

소스코드 : Python

def solution(s):
    answer = ""
    idx = 0
    tmp =""
    for i in range(len(s)):
        tmp += s[i].upper() if idx%2==0 else s[i].lower()
        if s[i]==" ":
            idx = 0
            answer +=tmp
            tmp = ""
        else: idx+=1
    else: answer +=tmp
    return answer
        
728x90
300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.