프로그래머스 Day10 문자열
문자열의 앞의 n글자
💫문제 설명💫
문자열 my_string과 정수 n이 매개변수로 주어질 때,
my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.
💫제한사항💫
my_string은 숫자와 알파벳으로 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
1 ≤ n ≤ my_string의 길이
💫입출력 ex💫
my_string | n | result |
---|---|---|
“ProgrammerS123” | 11 | “ProgrammerS” |
“He110W0r1d” | 5 | “He110” |
문제풀이
class Solution {
public String solution(String my_string, int n) {
return my_string.substring(0, n);
}
}
접두사인지 확인하기
💫문제 설명💫
어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다.
예를 들어, "banana"의 모든 접두사는 "b", "ba", "ban", "bana", "banan", "banana"입니다.
문자열 my_string과 is_prefix가 주어질 때,
is_prefix가 my_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.
💫제한사항💫
1 ≤ my_string의 길이 ≤ 100
1 ≤ is_prefix의 길이 ≤ 100
my_string과 is_prefix는 영소문자로만 이루어져 있습니다.
💫입출력 ex💫
my_string | is_prefix | result |
---|---|---|
“banana” | “ban” | 1 |
“banana” | “nan” | 0 |
“banana” | “abcd” | 0 |
“banana” | “bananan” | 0 |
문제풀이
class Solution {
public int solution(String my_string, String is_prefix) {
int answer = 0;
if(my_string.startsWith(is_prefix)) answer = 1;
return answer;
}
}
문자열 뒤집기
💫문제 설명💫
문자열 my_string과 정수 s, e가 매개변수로 주어질 때,
my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요.
💫제한사항💫
my_string은 숫자와 알파벳으로만 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
0 ≤ s ≤ e < my_string의 길이
💫입출력 ex💫
my_string | s | e | result |
---|---|---|---|
“Progra21Sremm3” | 6 | 12 | “ProgrammerS123” |
“Stanley1yelnatS” | 4 | 10 | “Stanley1yelnatS” |
문제풀이
class Solution {
public String solution(String my_string, int s, int e) {
// 주어진 문자열을 변경할 수 있도록 StringBuilder를 사용
StringBuilder answer = new StringBuilder(my_string);
// 인덱스 s부터 e까지의 부분 문자열을 추출한 후 뒤집는다
StringBuilder reversed = new StringBuilder(my_string.substring(s, e + 1)).reverse();
// answer의 인덱스 s부터 e까지의 부분을 뒤집은 문자열로 대체
answer.replace(s, e + 1, reversed.toString());
return answer.toString();
}
}
세로 읽기
💫문제 설명💫
문자열 my_string과 두 정수 m, c가 주어집니다.
my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.
💫제한사항💫
my_string은 영소문자로 이루어져 있습니다.
1 ≤ m ≤ my_string의 길이 ≤ 1,000
m은 my_string 길이의 약수로만 주어집니다.
1 ≤ c ≤ m
💫입출력 ex💫
my_string | m | c | result |
---|---|---|---|
“ihrhbakrfpndopljhygc” | 4 | 2 | “happy” |
“programmers” | 1 | 1 | “programmers” |
문제풀이
class Solution {
public String solution(String my_string, int m, int c) {
StringBuilder answer = new StringBuilder();
// c번째 열에 해당하는 문자 추출을 위해 시작 인덱스를 c - 1로 설정
for (int i = c - 1; i < my_string.length(); i += m) {
answer.append(my_string.charAt(i));
}
return answer.toString();
}
}
qr code
💫문제 설명💫
두 정수 q, r과 문자열 code가 주어질 때,
code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
💫제한사항💫
0 ≤ r < q ≤ 20
r < code의 길이 ≤ 1,000
code는 영소문자로만 이루어져 있습니다.
💫입출력 ex💫
q | r | code | result |
---|---|---|---|
3 | 1 | “qjnwezgrpirldywt” | “jerry” |
1 | 0 | “programmers” | “programmers” |
문제풀이
class Solution {
public String solution(int q, int r, String code) {
String answer = "";
for (int i = r; i < code.length(); i += q) {
answer += code.charAt(i);
}
return answer;
}
}
Leave a comment