뭐라도 배우면 기록하자
[알고리즘 문제풀이] 수박수박수박수? 본문
문제 및 답안 출처: http://www.tryhelloworld.co.kr
문제
water_melon함수는 정수 n을 매개변수로 입력받습니다.
길이가 n이고, 수박수박수...와 같은 패턴을 유지하는 문자열을 리턴하도록 함수를 완성하세요.
예를들어 n이 4이면 '수박수박'을 리턴하고 3이라면 '수박수'를 리턴하면 됩니다.
public class WaterMelon {
public String watermelon(int n){
return "";
}
// 실행을 위한 테스트코드입니다.
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));
}
}
나의 답
public class WaterMelon {
public String watermelon(int n){
String str="";
for(int i=1;i<n+1;i++){
if(i%2 == 0){
str += "박";
}else{
str += "수";
}
}
return str;
}
// 실행을 위한 테스트코드입니다.
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));
}
}
다른 사람의 답
public class WaterMelon { public String watermelon(int n){ StringBuffer sf = new StringBuffer(); for (int i=1; i<=n; ++i) { sf.append(i%2==1?"수":"박"); } return sf.toString(); } // 실행을 위한 테스트코드입니다. 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)); } }
저는 for, if문의 아주 간단한 조건, 반복문으로 수,박을 각각 추가하는 로직을 새웠습니다. 하지만 다른 분들의 답안을 보니 API의 활용능력이 훨씬 뛰어나시더라구요.
그 중 눈에 띄었던 것은 Stringbuffer자료형을 사용한 것입니다.
StringBuffer는 문자열을 추가하거나 변경 할 때 주로 사용하는 자료형으로 append, insert, substring의 매소드를 사용할 수 있습니다.
(https://wikidocs.net/276)에 Stringbuffer의 자세한 내용이 나와있어서 링크를 걸어두겠습니다.
문제를 풀면 풀수록 제가 아는 것이 정말 적다는 것을 느끼네요;;
'프로그래밍언어공부 > Java' 카테고리의 다른 글
[알고리즘 문제풀이] 문자열 내림차순으로 배치하기 (0) | 2017.06.22 |
---|---|
[알고리즘 문제풀이] 서울에서 김서방찾기 (0) | 2017.06.22 |
[알고리즘 문제풀이] 스트링을 숫자로 바꾸기 (0) | 2017.06.22 |
[알고리즘 문제풀이] 짝수와 홀수 (0) | 2017.06.22 |
[알고리즘 문제풀이] 최대값과 최소값 (0) | 2017.06.21 |