프로그래머스 - LV1. 이상한 문자 만들기

김소정·2022년 3월 2일
0

프로그래머스

목록 보기
15/35

❔ 문제

❗ 내 풀이

class Solution {
    public String solution(String s) {
        String answer = "";
        String[] str = s.split("");
        
        StringBuilder sb = new StringBuilder();
        
        int cnt = 0;	// 순서 카운트할 변수 생성
        for(int i = 0; i < str.length; i++){
            cnt = str[i].contains(" ") ? 0 : cnt + 1;	// 공백(띄어쓰기) 포함하고 있으면 0으로 다시 셋팅 
            
            if(cnt % 2 == 0){
                sb.append(str[i].toLowerCase());    
            }else{
                sb.append(str[i].toUpperCase());
            }
        }
        
        answer = sb.toString();
        
        return answer;
    }
}

🚩참고 (다른 풀이)


1. 
class Solution {
  public String solution(String s) {
      String answer = "";
      boolean switching = true;
      for(int i=0; i<s.length(); i++){
          if(s.charAt(i)==' '){		//charAt 함수: 문자열에서 특정 위치의 문자가 무엇인지 리턴
              switching=true;	// 공백이면 flag를 true로 두고 초기화 셋팅
              answer += " ";
          }else{
              String temp=""+s.charAt(i);

              if(switching){
                  answer+=temp.toUpperCase();
              }else{
                  answer+=temp.toLowerCase();
              }

              switching = !switching;
          }
      }

      return answer;
  }
}


2.
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;
  }
}

📝 정리

💬 공백 만나면 순서 초기화하는 변수 생성
💬 flag로 순서 초기화하는 방법도 있다.

✔ String api 확인(charAt)


profile
개발자 가보자고

0개의 댓글

관련 채용 정보