코딩테스트연습/[프로그래머스] Java

[프로그래머스] Java 코딩테스트 연습 - qr code

_꼬마돌 2023. 6. 18. 00:14
반응형

[프로그래머스] Java 코딩테스트 연습 - qr code

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/181903

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return하는 solution 함수를 작성해 주세요.

 

풀이

'StringBuilder' 클래스를 알게 되어 처음 써봤다. 
for 반복문 돌리고 if 문으로 code의 인덱스로 q를 나눴을 때 나머지가 r과 같다면 append() 메서드로 그 자리의 문자열을 뒤에 이어 붙이도록했다. toString() 메서드로 answer를 string으로 형변환 시켜주고 return.

StringBuilder: 자바에서 문자열을 동적으로 구성하기 위해 사용되는 클래스. String과 달리 불변하지 않기 때문에 문자열을 수정할 때마다 새로운 객체를 생성하지 않아도 된다. 또한, 다양한 메서드를 제공하여 문자열을 추가, 수정, 삭제하는 등의 작업을 수행할 수 있다. 

append() : 문자열을 뒤에 추가
insert() : 특정 위치에 문자열 삽입
delete() : 지정된 범위의 문자열 삭제
replace() : 지정된 범위의 문자열을 다른 문자열로 대체
reverse() : 문자열 역순으로 뒤집기
setLength() : 문자열의 길이 설정
toString() : StringBuilder 객체를 문자열로 변환

 

소스코드

class Solution {
    public String solution(int q, int r, String code) {
        StringBuilder answer = new StringBuilder();
       
       for (int i = 0; i < code.length(); i++) {
           if (i % q == r) {
               answer.append(code.charAt(i));
           }
       }
        
        return answer.toString();
    }
}

 

반응형