728x90
반응형
[문제] 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. <제한 조건> n은 길이 10,000이하인 자연수입니다. |
<입출력 예>
n | return |
3 | "수박수" |
4 | "수박수박" |
[풀이]
import java.util.*;
class Solution {
public String solution(int n) {
String[] arr = new String[n];
for(int i=0;i<arr.length;i++){
if((i+1)%2==1){
arr[i] = "수";
}else if((i+1)%2==0){
arr[i] = "박";
}
}
String answer= String.join("", arr);
return answer;
}
}
내가 푼 방식은 입력된 값 n 크기의 빈 배열을 만들어서
for문을 돌려 해당 배열에 차곡차곡 인덱스 별로 값을 선별하여 집어넣는 형태이다.
[다른 사람의 풀이]
public class WaterMelon {
public String watermelon(int n){
return new String(new char [n/2+1]).replace("\0", "수박").substring(0,n);
}
// 실행을 위한 테스트코드입니다.
public static void main(String[] args){
WaterMelon wm = new WaterMelon();
System.out.println("n이 3인 경우: " + wm.watermelon(3));
System.out.println("n이 4인 경우: " + wm.watermelon(4));
}
}
참고로 substring 은 0번째 문자열부터 n번째 전까지 자르는 함수이다.
어차피 반복되는 건 '수박'이니 문자열을 대체한다는 발상이 좋은 것 같다.
반응형
'alorithm > programmers' 카테고리의 다른 글
[JAVA/프로그래머스] 부족한 금액 계산하기 (0) | 2023.04.28 |
---|---|
[JAVA/프로그래머스] Lv1. 이상한 문자 만들기 (0) | 2023.04.28 |
[JAVA/프로그래머스] Lv1. 하샤드 수 (0) | 2023.04.27 |
[JAVA/프로그래머스] Lv1. 나누어 떨어지는 숫자 배열 (0) | 2023.04.26 |
[JAVA/프로그래머스] Lv1. 서울에서 김서방 찾기 (0) | 2023.04.26 |