
내가 생각했을때 문제에서 원하는부분
두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
내가 이 문제를 보고 생각해본 부분
solution 메서드
입력값은 정수 q, r과 문자열 code이다.
빈 문자열 answer를 준비해 나중에 결과를 담는다.
문자열의 모든 인덱스 i에 대해 반복하며, 인덱스 i를 q로 나눈 나머지가 r과 같으면 code.charAt(i) 문자를 answer에 이어 붙인다.
모든 문자 중 조건에 맞는 문자만 모은 문자열 answer를 반환한다.
main 메서드
실제 실행 시 두 가지 테스트 케이스를 준비했다.
첫 번째는 q=3, r=1, 문자열 "qjnwezgrpirldywt"인 경우이다. 여기서 나머지가 1인 인덱스 문자들을 모으면 "jerry"가 되어 출력된다.
두 번째는 q=1, r=0, 문자열 "programmers"로 모든 인덱스가 나머지 0이므로 그대로 "programmers"가 출력된다.
각각의 solution 호출 결과를 출력해 올바르게 동작하는지 확인한다.
코드로 구현
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;
}
}
프로그래머스 코드
package programmers;
// 프로그래머스 qr code
public class Main42 {
// 문제 풀이 메서드
public static 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;
}
// 실행용 main 메서드
public static void main(String[] args) {
// 테스트 케이스 1
int q1 = 3;
int r1 = 1;
String code1 = "qjnwezgrpirldywt";
System.out.println(solution(q1, r1, code1)); // 예상: "jerry"
// 테스트 케이스 2
int q2 = 1;
int r2 = 0;
String code2 = "programmers";
System.out.println(solution(q2, r2, code2)); // 예상: "programmers"
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.