프로그래머스 qr code

KIMYEONGJUN·2026년 6월 6일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

두 정수 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"
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글