programmers 기초 Day18

Hwani·2024년 6월 18일

프로그래머스 DAY 1~25

목록 보기
44/51

문제 - x 사이의 개수

풀이

class Solution {
    public int[] solution(String myString) {
        String[] split = myString.split("x", -1);
        int[] answer = new int[split.length];

        for (int i = 0; i < split.length; i++) {
            answer[i] = split[i].length();
        }

        return answer;
    }
}

설명

매개변수에서 x를 기준으로 나누어 나눠진 문자열의 길이를 배열에 담아 리턴하는 문제

  • 매개변수를 x를 기준으로 나누고 문자열의 -1 길이까지 배열을 생성한다.
  • 새로운 배열을 똑같이 생성한다.
  • for문으로 순회하여 x로 나눈 배열의 문자의 길이를 새로운 배열에 담고 리턴한다.

문제 - 문자열 잘라서 정렬하기

풀이

import java.util.*;

class Solution {
    public String[] solution(String myString) {
        String[] splitArr = myString.split("x");
        ArrayList<String> resultList = new ArrayList<>();
        
        for (String str : splitArr) {
            if (!str.isEmpty()) {
                resultList.add(str);
            }
        }
        
        String[] resultArr = resultList.toArray(new String[resultList.size()]);
        Arrays.sort(resultArr);
     
        return resultArr;
    }
}

설명

매개변수 myString에서 x를 기준으로 문자열을 잘라내어 사전순으로 정렬한 배열에 담아 리턴하는 문제

  • 매개변수를 x를 기준으로 나눈다.
  • x를 기준으로 나눈게 크기가 얼마나 될지 모르기 때문에 ArrayList 생성
  • 매개변수를 나눈 배열을 String 타입의 str 변수에 저장하여 for문으로 str에 저장되어 있는 값을 resultList에 추가
  • ArrayList인 resultList를 toArray() 메서드를 사용해 배열로 변환한뒤 그 배열을 사전순으로 정렬하고 리턴

문제 - 간단한 식 계산하기

풀이

class Solution {
    public int solution(String binomial) {
        String[] split = binomial.split(" ");
        int result = 0;
        
        int a = Integer.parseInt(split[0]);
        String op = split[1];
        int b = Integer.parseInt(split[2]);

        switch (op) {
            case  "+" :
                result = a + b;
                break;
            case  "-" :
                result = a - b;
                break;
            case  "*" :
                result = a * b;
                break;
        }

        return result;

    }
}

설명

계산식이 담긴 매개변수 String타입의 binomial를 계산하여 리턴하는 문제

  • 매개변수 binomial을 " " 공백을 기준으로 나눈다.
    나누면 [43,+,12] 배열이 생성된다.
  • 배열에 담긴 값이 정수 계산식 정수 로 고정되어 있기 때문에 배열의 인덱스로 a, op, b로 변수를 설정한다.
  • switch문을 통해 op가 +,-,* 일때 계산식을 생성하고 값을 리턴한다.

문제 - 문자열 바꿔서 찾기

풀이

class Solution {
    public int solution(String myString, String pat) {
        StringBuilder sb = new StringBuilder();

        for (char ch : myString.toCharArray()) {
            if (ch == 'A') {
                sb.append('B');
            } else if (ch == 'B') {
                sb.append('A');
            }
        }

        if (sb.toString().contains(pat)) {
            return 1;
        } else {
            return 0;
        }
    }
}

설명

문자열 중 A는 B로, B는 A로 변환하고 그 문자 중 pat에 해당하는 문자가 존재하면 1을 리턴, 없다면 0을 리턴하는 문제

  • StringBuilder 객체를 생성한다.
  • for문으로 매개변수 myString을 char 타입으로 변환하여 A는 B, B는 A로 변환한다.
  • sb에 담긴 값이 contains() 메서드를 이용해 포함한다면 1을 리턴, 없다면 0을 리턴

문제 - rny_string

풀이

class Solution {
    public String solution(String rny_string) {
        return rny_string.replace("m", "rn");
    }
}

설명

매개 변수 rny_string의 m을 rn으로 바꿔서 리턴하는 문제

  • replace() 메서드로 m을 rn으로 변환시켜서 리턴
profile
개발자될거야

0개의 댓글