프로그래머스 Day 18 문자열

x 사이의 개수

💫문제 설명💫

문자열 myString이 주어집니다.
myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.

💫제한사항💫

1 ≤ myString의 길이 ≤ 100,000
  myString은 알파벳 소문자로 이루어진 문자열입니다.

💫입출력 ex💫

myString result
“oxooxoxxox” [1, 2, 1, 0, 1, 0]
“xabcxdefxghi” [0, 3, 3, 3]

문제풀이

class Solution {
    public int[] solution(String myString) {
        String[] mySplit = myString.split("x", myString.length());
        int[] answer = new int[mySplit.length];
        
        for(int i=0; i < mySplit.length; i++) {
            answer[i] =  mySplit[i].length();
        }
        return answer;
    }
}

문자열 잘라서 정렬하기

💫문제 설명💫

문자열 myString이 주어집니다.
"x"를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 return 하는 solution 함수를 완성해 주세요.

단, 빈 문자열은 반환할 배열에 넣지 않습니다.

💫제한사항💫

1 ≤ myString ≤ 100,000
  myString은 알파벳 소문자로 이루어진 문자열입니다.

💫입출력 ex💫

myString result
“axbxcxdx” [“a”,”b”,”c”,”d”]
“dxccxbbbxaaaa” [“aaaa”,”bbb”,”cc”,”d”]

문제풀이

import java.util.*;

class Solution {
    public String[] solution(String myString) {
        return Arrays.stream(myString.split("x"))
                     .filter(s -> !s.isEmpty())
                     .sorted()
                     .toArray(String[]::new);
    }
}

간단한 식 계산하기

💫문제 설명💫

문자열 binomial이 매개변수로 주어집니다.
binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나입니다.
주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.

💫제한사항💫

0 ≤ a, b ≤ 40,000
0을 제외하고 a, b는 0으로 시작하지 않습니다.

💫입출력 ex💫

binomial result
“43 + 12” 55
“0 - 7777” -7777
“40000 * 40000” 1600000000

문제풀이

class Solution {
    public int solution(String binomial) {
        int answer = 0;
        String[] calc = binomial.split(" ");
        
        int a = Integer.parseInt(calc[0]);
        String op = calc[1];
        int b = Integer.parseInt(calc[2]);
        
        answer = op.equals("+") ? a+b 
            : op.equals("-") ? a-b : a*b;
        
        return answer;
    }
}

문자열 바꿔서 찾기

💫문제 설명💫

문자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어집니다.
myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.

💫제한사항💫

1 ≤ myString의 길이 ≤ 100
1 ≤ pat의 길이 ≤ 10
  myString과 pat는 문자 "A"와 "B"로만 이루어진 문자열입니다.

💫입출력 ex💫

myString pat result
“ABBAA” “AABB” 1
“ABAB” “ABAB” 0

문제풀이

class Solution {
    public int solution(String myString, String pat) {
        int answer = 0;
        
        myString = myString.replace("A", "b").replace("B", "a");
        answer = myString.toUpperCase().contains(pat) ? 1 : 0;
        
        return answer;
    }
}

rny_string

💫문제 설명💫

'm'과 "rn"이 모양이 비슷하게 생긴 점을 활용해 문자열에 장난을 하려고 합니다.
문자열 rny_string이 주어질 때, rny_string의 모든 'm'을 "rn"으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

💫제한사항💫

1 ≤ rny_string의 길이 ≤ 100
rny_string은 영소문자로만 이루어져 있습니다.

💫입출력 ex💫

rny_string result
“masterpiece” “rnasterpiece”
“programmers” “prograrnrners”
“jerry” “jerry”
“burn” “burn”

문제풀이

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

Categories:

Updated:

Leave a comment