본문 바로가기
📟 Computer science/Algorism

[프로그래머스] Lv.1이상한 문자 만들기 (자바)

by 깸뽀 2022. 9. 24.
728x90

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

 


💡 Key

    - split() : 문자열 자르기

    - toUpperCase() / toLowerCase(): 대문자로 변환 / 소문자로 변환

 

🔑 Code

* 제한사항

1. 단어(공백을 기준)별로 짝/홀수 인덱스를 판단

    - 제한사항에서 공백을 기준이라고 쓰여있어서 split()함수를 떠올렸다.

2. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리

     - 공백을 기준으로 처음 인덱스값을0으로 주면 입출력값과 똑같이 나올것이라고 생각했다.

 

< 내가 짠 코드 >

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public String solution(String s) {
        String answer = "";
        String[] str = s.split("");
 
        int index = 0//인덱스값
        for (int i = 0; i < str.length; i++) {
            if (str[i].equals(" ")) {
                index = 0//띄어쓰기가 있으면 인덱스값 0
            } else if (index % 2 == 0) { //index값이 짝수라면
                str[i] = str[i].toUpperCase(); //대문자로 표시
                index++//index값을 0으로 주었기때문에 증가 필요
            } else { //index값이 홀수라면
                str[i] = str[i].toLowerCase(); // 소문자로 표시
                index++//index값 증가
            }
            answer += str[i]; //answer에 값 대입
        }
        return answer;
    }
cs

 

 

< 다른사람이 사용한 코드 >

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;
  }
}
 
cs

 

나도 이렇게.. 잘 짜고싶다 ㅠㅠㅠㅠㅠ

 

 


📝 Memo

 

1. split()

: 구분자를 기준으로 문자열을 잘라 배열로 입력할 때 사용하는 메서드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
String str1 = "Hi guys This is split example";
        String str2 = "hello world le o";
 
        String[] result = str1.split(" ");
        String[] result2 = str1.split(" "2);
        String[] result3 = str1.split(" "3);
 
        String[] result4 = str2.split("");
        String[] result5 = str2.split(" ");
 
 
        System.out.println("result1 => " + Arrays.toString(result));
        System.out.println("result2 => " + Arrays.toString(result2));
        System.out.println("result3 => " + Arrays.toString(result3));
        System.out.println("result4 => " + Arrays.toString(result4));
        System.out.println("result5 => " + Arrays.toString(result5));
cs

 

2. toUpperCase() / toLowerCase()

: 문자를 모두 대문자/소문주로 변환한다

1
2
3
4
5
       String str1 = "hello everyone. nice to meet you";
        String str2 = "HELLO EVERYONE. NICE TO MEET YOU";
 
        System.out.println("str1 => " + str1.toUpperCase());
        System.out.println("str2 => " + str2.toLowerCase());
cs

728x90

댓글