
프로그래머스에서 낸 코딩 문제에 대한 해답이 들어있습니다.
열람 시 주의해주세요.

이어서 진행하는 코테런.
어제의 문제와 유사한 문제가 있어서 쉬웠다.
실제로 한 문제를 제외하고 3분 이내에 해결.
문자열의 앞의 n글자
문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.
문제 해설
아래의 문제의 정 반대인 문제.
[코딩 테스트 RUN] 코딩 기초 트레이닝 9일차
⚠️ 주의!프로그래머스에서 낸 코딩 문제에 대한 해답이 들어있습니다.열람 시 주의해주세요. 이어서 진행되는 코테런! 연휴가 시작되어도 계속 해나가려고 한다. 배열 만들기 5 문자열 배열 in
bbbbabbbababababa.tistory.com
substring의 순서만 0부터 n으로 수정해주면 된다.
정답
class Solution {
public String solution(String my_string, int n) {
String answer = "";
answer = my_string.substring(0, n);
return answer;
}
}
접두사인지 확인하기
어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다. 예를 들어, "banana"의 모든 접두사는 "b", "ba", "ban", "bana", "banan", "banana"입니다.
문자열 my_string과 is_prefix가 주어질 때, is_prefix가 my_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.
문제 해설
아래 문제의 정확히 반대인 문제.
[코딩 테스트 RUN] 코딩 기초 트레이닝 9일차
⚠️ 주의!프로그래머스에서 낸 코딩 문제에 대한 해답이 들어있습니다.열람 시 주의해주세요. 이어서 진행되는 코테런! 연휴가 시작되어도 계속 해나가려고 한다. 배열 만들기 5 문자열 배열 in
bbbbabbbababababa.tistory.com
모범 답안이 endswith이므로 시작여부는 startswith로 쉬이 응용 가능하다.
정답
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 함수를 작성해 주세요.
문제 해설
아래 문제를 한 차례로 바꾼 것으로 훨씬 간단하다.
[코딩 테스트 RUN] 코딩 기초 트레이닝 8일차
⚠️ 주의!프로그래머스에서 낸 코딩 문제에 대한 해답이 들어있습니다.열람 시 주의해주세요. 계속 달리는 코테런. 이번부터는 그냥 기본으로 주어지는 템플릿은 생략하기로 했다. 간단한 논
bbbbabbbababababa.tistory.com
정답
class Solution {
public String solution(String my_string, int s, int e) {
String answer = "";
char[] arr;
arr = my_string.toCharArray();
while(s < e) {
char temp = arr[s];
arr[s++] = arr[e];
arr[e--] = temp;
}
answer = new String(arr);
return answer;
}
}
다만 더 간단한 풀이 방법이 있어서 공유한다.
다만 이 경우 여러 번 사용하기를 하려면 위쪽처럼 하는 것이 더 간단하다.
class Solution {
public String solution(String my_string, int s, int e) {
StringBuilder answer = new StringBuilder(my_string.substring(s, e + 1));
answer.reverse();
return my_string.substring(0, s) + answer + my_string.substring(e + 1);
}
}
StringBuilder
변경 가능한 문자열 객체를 의미한다.
append()나 insert(), delete(), replace(), reverse() 등을 통해서 수정할 수 있다. 아래 있는 reverse()가 그 예제.
세로 읽기
문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.
문제 해설
이번 코테런 중에 제일 많이 걸린 문제.
가장 중요한 건 m이 my_string.length()의 약수라는 조건이다. 이 조건이 없으면 케이스 처리가 너무 많이 늘어난다.
이중배열로 처리하였는데 더 간단한 방법이 있었다… 가로와 세로만 보고 이중배열을 먼저 생각해버린 케이스.
정답
class Solution {
public String solution(String my_string, int m, int c) {
String answer = "";
int len = my_string.length();
char arr[][] = new char[(len / m)][m]; //약수로만 된다고 하였으니 나머지는 신경쓰지 않아도 된다.
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < m; j++){
arr[i][j] = my_string.charAt(i * m + j);
}
answer += arr[i][c-1];
}
return answer;
}
}
제일 보편적인 답은 이것.
class Solution {
public String solution(String my_string, int m, int c) {
String answer = "";
for (int i = c - 1; i < my_string.length(); i += m) {
answer += my_string.charAt(i);
}
return answer;
}
}
그냥 시작을 c -1로 하고(왜냐하면 c가 1부터였기 때문이다) m씩 증가를 시키면 되는 문제였다.
왜냐하면 m개씩 나눠지기 때문에 c - 1을 m씩 증가하면 그 그대로 c열이 출력된다.
qr code
두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
문제 해설
말은 복잡하지만 code의 length만큼 순회하면서 i를 q로 나눈 나머지가 r이면 추가하는 형식이면 된다. 이게 가장 보편적인 풀이.
정답
class Solution {
public String solution(int q, int r, String code) {
String answer = "";
for(int i = 0; i < code.length(); i++){
if(i % q == r)
answer += code.charAt(i);
}
return answer;
}
}
제일 좋아요를 많이 받은 풀이는 이것.
class Solution {
public String solution(int q, int r, String code) {
StringBuilder sb = new StringBuilder();
for (int i = r; i < code.length(); i += q)
sb.append(code.charAt(i));
return sb.toString();
}
}
r로 스타트하고 그만큼을 q를 더하면 된다는 발상이다.
StringBuilder는 선택.
'코테런 > 코딩 기초 트레이닝(완주)' 카테고리의 다른 글
| [코딩 테스트 RUN] 코딩 기초 트레이닝 12일차: 리스트(배열) (0) | 2026.02.17 |
|---|---|
| [코딩 테스트 RUN] 코딩 기초 트레이닝 11일차: 리스트(배열) (0) | 2026.02.16 |
| [코딩 테스트 RUN] 코딩 기초 트레이닝 9일차 (0) | 2026.02.14 |
| [코딩 테스트 RUN] 코딩 기초 트레이닝 8일차 (0) | 2026.02.13 |
| [코딩 테스트 RUN] 코딩 기초 트레이닝 7일차 (0) | 2026.02.12 |
