프로그래머스 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");
}
}
Leave a comment