문제

문자열 str과 정수 n이 주어집니다.
str이 n번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요.

내 코드

public class 문자열반복해서출력하기 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int n = sc.nextInt();

        for (int i = 0; i < n; i++) {
            System.out.print(str);
        }
    }
}

풀이

단순하게 for문을 활용해서 반복했다.

다른 사람 코드

 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int n = sc.nextInt();
        System.out.println(str.repeat(n));
 }

repeat 메소드는 Java 11에서 추가된 String 클래스의 메소드라고 한다.
이 메소드는 문자열을 주어진 횟수만큼 반복하여 새로운 문자열을 반환한다.

repeat 메소드를 사용하는 것이 단순 for문보다 효율적일것이라 생각하고 GPT에게 물어보았다.
가독성: repeat 메소드는 문자열을 반복하는 목적을 더 명확하게 나타내기 때문에 코드의 의도를 이해하기 쉽다.
간결성: repeat 메소드를 사용하면 반복을 처리하는 논리를 직접 구현하지 않아도 되므로 코드가 간결해진다.
성능: repeat 메소드는 내부적으로 효율적으로 구현되어 있으며, 문자열을 반복하기 위해 루프를 수동으로 실행하는 것보다 빠를 수 있다.

따라서, repeat 메소드를 사용하는 것이 효율적이고 권장되는 방법이지만 Java 11 이상의 버전이 필요하다.

그리고 횟수가 아주 많을 경우에도 repeat 메소드가 여전히 효율적이라고 한다.
repeat 메소드는 내부적으로 최적화되어 있어서 대부분의 경우 빠르게 동작할 수 있다.
대부분의 상황에서 repeat 메소드를 사용하는 것이 더 효율적이라고 한다.

새로운 메소드를 알게 되었다.

+ Recent posts