본문 바로가기
알고리즘 스터디/프로그래머스 스킬체크 레벨 1(끝)

[프로그래머스 스킬체크 레벨 1] 수박수박수박수박수박수? "수박수박수" 패턴 유지 문자열 함수 리턴 문제 풀이 및 설명 - 자바[Java]

by 레일라오리덕 2020. 5. 10.
728x90

https://programmers.co.kr/

 

프로그래머스

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

programmers.co.kr

 

https://programmers.co.kr/learn/courses/30/lessons/12922?language=java

 

문제

길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를 들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다.

 

 

제한 사항

n은 길이 10,000이하인 자연수입니다.

 

 

결괏값 예시

n return
3 "수박수"
4 "수박수박"

 

기본 제공 틀

 

class Solution{
	public String solution(int n) {
		String answer = "";
		return answer;
	}
}

 

풀이 [Java]

 

class Solution{
	public String solution(int n) {
		String answer = "수박";
		int multi = n/2;
		if (n%2==0) {
			answer = answer.repeat(multi);
		}else {
			answer = answer.repeat(multi) + "수";
		}
		return answer;
	}
}

가장 먼저 생각해봐야 할 메서드는 반복 메서드인데요.

같은 패턴의 문자열을 반복하기 위해서 필요한 메서드로는 .repeat가 있습니다.

처음에 저는 "수박" *2와 같은 방법을 사용하려 했었으나 잘못된 방법이었고(파이썬식으로 생각함), 이 문제를 통해 새로운 메서드인 .repeat메서드를 알게 되었습니다.

 

이 외에 중요한 포인트로는 문자열을 합치는 방법인데요, 위 풀이와 같이 기존에 있는 글자에 다른 문자열을 연결하려면 "+"라는 연산자를 사용하는 방법이 있습니다.

728x90

 

class Solution{
	public String solution(int n) {
		String answer = "수박";
		int multi = n/2;
		if (n%2==0) {
			answer = answer.repeat(multi);
		}else {
			answer = answer.repeat(multi).concat("수");
		}
		return answer;
	}
}

추가적으로 문자열을 합치는 메서드로는 위와 같이 concat이 있습니다. 이 concat함수는 문자열뿐만 아니라 배열 또한 합칠 수 있습니다.

728x90

댓글