[프로그래머스]이상한 문자 만들기

allnight5·2023년 2월 23일
0

프로그래머스

목록 보기
36/73

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

제한 사항
문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
s return
"try hello world" "TrY HeLlO WoRlD"
입출력 예 설명
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.

def solution(s):
    answer = ""
    count =0
    for i in range(len(s)):
        if(count %2 == 0):
            answer+= s[i:i+1].upper()
        else :
            answer+= s[i:i+1].lower() 
        if s[i:i+1] == " ":
            count =0
        else :
            count += 1
    return answer

파이썬 두번째

def solution(s):
    answer = []
    word= s.split(" ")
    for i in word:
        part = []
        for j in range(len(i)):
            if j%2 ==0:
                part.append(i[j].upper())
            else :
                part.append(i[j].lower())
        part = "".join(part)
        answer.append(part)
    answer=" ".join(answer) 
    return answer

자바 첫번째

class Solution {
    public String solution(String s) {
            String answer = "";
        StringBuilder sb = new StringBuilder();


        int gubun = 0;
            for(int i = 0; i < s.length(); i++ ) {
                if(s.charAt(i) != ' ') {
                    if(gubun % 2 == 0) {
                        sb.append(Character.toUpperCase(s.charAt(i)));
                    }else {
                        sb.append(Character.toLowerCase(s.charAt(i)));
                    }
                    gubun++;
                }else {
                    sb.append(" ");
                    gubun = 0;
                }
            }
            answer = sb.toString();

        return answer;
    }
}
class Solution {
  public String solution(String s) {

        String answer = "";
        int cnt = 0;
        String[] array = s.split("");

        for(String ss : array) {
            cnt = ss.contains(" ") ? 0 : cnt + 1;
            answer += cnt%2 == 0 ? ss.toLowerCase() : ss.toUpperCase(); 
        }
      return answer;
  }
}
profile
공부기록하기

0개의 댓글