[프로그래머스/java]수박수박수박수박수박수?
리트리버J
·2021. 1. 3. 15:22
728x90
길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다.
제한 조건
- n은 길이 10,000이하인 자연수입니다.
<나의 풀이>
1. String += 는 메모리 소모가 크기 때문에 StringBuffer / StringBuilder 객체 생성
2. 짝수면 n/2까지 반복
3. 홀수면 n/2까지 반복 후 append("수")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class Solution {
public String solution(int n) {
String wm = "수박";
StringBuffer sb = new StringBuffer();
if(n % 2 == 0){
for(int i=0; i<n/2; i++){
sb.append(wm);
}
}else{
for(int i=0; i<n/2; i++){
sb.append(wm);
}
sb.append("수");
}
return sb.toString();
}
}
|
cs |
<사이트 풀이>
1. new String(char[])를 통해 길이 배정
2. n/2 절반을 나누고, +1을 통해 무조건 "박"으로 끝나게 함.
3. replace("\0","수박")으로 빈문자열당 수박으로 치환.
* replace("","수박")으로 할 시 수박 수박 수박 이렇게 공백 문자가 들어가게 됨.
→ 나중에 공부하기
5. substring(start, end)으로 주어진 숫자만큼 잘라냄
1
2
3
4
5
|
class Solution {
public String solution(int n) {
return new String(new char [n/2+1]).replace("\0", "수박").substring(0,n);
}
}
|
cs |
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
728x90
'알고리즘 > 코딩테스트' 카테고리의 다른 글
[프로그래머스/java]서울에서 김서방 찾기 (0) | 2021.01.03 |
---|---|
[프로그래머스/java] 소수 찾기 *[에라스토테네스의 체] 설명 (0) | 2021.01.03 |
[프로그래머스/java] 문자열을 정수로 바꾸기 (0) | 2021.01.03 |
[프로그래머스/java] 시저 암호 (0) | 2021.01.03 |
[프로그래머스/java] 약수의 합 (0) | 2020.12.30 |