[프로그래머스] Java 코딩테스트 - 문자 반복 출력하기

yihyun·2024년 8월 6일

코딩테스트

목록 보기
11/105
post-thumbnail

문자 반복 출력하기

✅ 문제설명

문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.

✅ 제한사항

2 ≤ my_string 길이 ≤ 5
2 ≤ n ≤ 10
"my_string"은 영어 대소문자로 이루어져 있습니다.

🔽 소스코드 1

2중 for문을 활용해 들어오는 문자열을 수를 기준으로 반복할 수 있도록 코드 구성
문자열을 .charAt() 메소드를 활용해 한글자씩 꺼내주기

하지만 이 방법은 문자열 누적합으로 인해 많은 시간이 소요된다.
그래서 StringBuffer 을 사용해주는 것이 더 좋다.

class Solution {
    public String solution(String my_string, int n) {
    	String answer = "";
    	StringBuffer buffer = new StringBuffer();
    	
    	for(int i = 0; i < my_string.length(); i++) {
    		var c = my_string.charAt(i);  
    		for(int j = 0; j < n; j++) {
    			buffer.append(c);
    		}
    	}
    	answer = buffer.toString();
    	return answer;
    }
}

🔽 소스코드 2

2중 for문과 StringBuffer 를 사용해 실행시간 단축시켜준 코드
.append() 를 활용해 StringBuffer에 문자열 추가

.charAt() 을 사용하지 않는 경우 .split("") 을 사용해 문자를 한 글자 씩 분리해줄 수 있다.

class Solution {
    public String solution(String my_string, int n) {
    	String answer = "";
    	
    	StringBuffer buffer = new StringBuffer();
    	
    	for(int i = 0; i < my_string.length(); i++) {
    		var c = my_string.charAt(i);  // var은 지역변수에 사용 가능
    		for(int j = 0; j < n; j++) {
    			buffer.append(c);
    		}
    	}
    	answer = buffer.toString();
    	return answer;
    }
}

🔽 소스코드 3

입력된 문자를 .split()을 활용해 한 글자씩 분리해준 후 배열에 담아 .repeat()를 사용해 한 글자씩 n번 반복하는 for문으로 코드 작성

class Solution {
    public String solution(String my_string, int n) {
    	String answer = "";
    	String[] arr = my_string.split("");
    	
    	for (int i = 0; i < arr.length; i++) {
			answer += arr[i].repeat(n);
		}
    	return answer;
    }
}
profile
개발자가 되어보자

0개의 댓글