본문 바로가기
Language/JAVA

[JAVA] 반복문(for)없이 반복메서드(repeat)로 반복하기

by 이오와이 2023. 8. 5.

 

프로그래머스 > 코딩테스트 연습 > 코딩 기초 트레이닝 > 문자열 반복해서 출력하기

 

자바 알고리즘에 대해 공부하던 중 다음과 같은 문제를 보았습니다.

 

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

 

프로그래머스

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

programmers.co.kr

 

요약하자면,

단어와 숫자를 입력했을 때 해당 단어가 해당 숫자만큼 출력되어야 합니다.

 

 

단어가 숫자만큼 '반복'되어야 한다.

 

.. 반복..

 

당연히 반복문을 써서 다음과 같은 결과를 작성했습니다.

 

 

반복문 for문을 사용하여 문자열 반복하기

 

if ( str.length() >= 1 && str.length() <= 10 && n >= 1 && n <= 5) {
    for (int i = 0; i< n; i++){
        System.out.print(str);
    }
}

 

하나씩 파헤쳐보자면,

if문은 해당 문제의 조건에 나와있는 내용입니다.

- 입력한 단어의 길이가 1보다 같거나 크고, 10보다 같거나 작아야 합니다.

- 입력한 숫자가 1보다 같거나 크고, 5보다 같거나 작아야 합니다.

 

그리고 for문에 숫자 i를 0이라 정하고,

입력한 n보다 작으면 출력 후 1을 더합니다.

이때, i는 0부터 시작하기 때문에 'i <= n'이 아닌 'i < n'입니다.

 

그런데, 말입니다.

제출 후 다른 코드를 보니 코드를 더 단순화시킬 수 있었습니다.

 

 

반복메서드 repeat을 사용하여 문자열 반복하기

 

java11부터 가능한 String 메서드입니다.

즉, '문자열.repeat(숫자)'를 통해 숫자만큼 문자열이 반복되는 거죠.

 

코드로 확인하겠습니다.

if ( str.length() >= 1 && str.length() <= 10 && n >= 1 && n <= 5) {
    System.out.println(str.repeat(n));
}

 

System.out.println();을 이용하여 출력합니다.

str.repeat(n);을 입력하여 문자열 s가 숫자 n만큼 반복합니다.

 

코드가 훨씬 간단해진 걸 볼 수 있습니다.

현재는 코드가 짧아 체감하지 못하겠지만 실무에서 수많은 코드를 본다면 해당 메서드를 통해 단순화할 수 있습니다.