[프로그래머스 / Java] x 사이의 개수

Dreamer·2024년 2월 5일
0
post-thumbnail

문제

x 사이의 개수 문제

문자열이 주어지는데, "x"를 기준으로 나눈다.
나눠진 문자열의 길이를 순서대로 저장한 배열을 return

나의 풀이

어떻게 풀지?
x로 문자열 쪼개고 쪼개진 String의 length를 결과 배열에 담기

  • 처음 풀이
    실패 인증

실패한 부분

import java.util.*;
class Solution {
    public int[] solution(String myString) {
        
        ArrayList<Integer> temp = new ArrayList<>();
        for(String item : myString.split("x")) {
            temp.add(item.length());
        }
        
        int[] result = new int[temp.size()];
        for (int i = 0; i < temp.size(); i++) {
            result[i] = temp.get(i);
        }
        
        return result;
        
    }
}
  • 두번째 풀이

    x로 문자열 쪼개고 쪼개진 String의 length를 결과 배열에 담기 (Fail)
    맨 뒤가 x면 공백 추가 -> length가 1로 잡혀버림.. (Fail)

실패한 부분

import java.util.*;
class Solution {
    public int[] solution(String myString) {
                
        StringBuffer sb = new StringBuffer(myString);
        if (myString.endsWith("x")) {
            sb.append(" ");
        }
        
        myString = sb.toString();
    
        ArrayList<Integer> temp = new ArrayList<>();
 ;
        for(String item : myString.split("x")) {
           temp.add(item.length());
        }

        int[] result = new int[temp.size()];
        for (int i = 0; i < temp.size(); i++) {
            result[i] = temp.get(i);
        }
        
        return result;
        
    }
}
  • 세번째 풀이

    x로 문자열 쪼개고 쪼개진 String의 length를 결과 배열에 담기 (Fail)
    맨 뒤가 x면 공백 추가 -> length가 1로 잡혀버림.. (Fail)
    마지막 문자가 x -> 0 추가 조건 걸어 줌 🐥성공🐥

성공 인증

import java.util.*;
class Solution {
    public int[] solution(String myString) {
        
        ArrayList<Integer> temp = new ArrayList<>();
        for (String item : myString.split("x")) {
            temp.add(item.length());
        }
        
        if (myString.endsWith("x")) {
           temp.add(0); 
        }
        
        int[] result = new int[temp.size()];
        for (int i = 0; i < result.length; i++) {
            result[i] = temp.get(i);
        }
        
        return result;
    }
}

  • 배열에 바로 담는 방법 생각해보기
  • Stream 공부하기
profile
Moving forward based on records

0개의 댓글