수박수박수박수박수박수? Level 1 #join #replace #StringBuffer #append #String '+=' 연산

2018. 5. 6. 06:12·프로그래밍/알고리즘(자바)
  수박수박수박수박수박수? Level 1

이 문제는 푸는 방식이 정말 다양했다.
일단 join을 이용해 풀었는데 String API를 보니 concat 메소드로도 가능할 것 같다.
public class WaterMelon {
    public String watermelon(int n){
        String wm ="";
        for(int i = 0; i<n; i++){
            if(i%2==0)
                wm = String.join("",wm,"수");
            else
                wm = String.join("",wm,"박");
        }
        return wm;
    }

    // 실행을 위한 테스트코드입니다.
    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){
        return new String(new char [n/2+1]).replace("\0", "수박").substring(0,n);  
        //String을 [n/2+1] 의 문자열 크기로 만든 다음 "\0"인 내용들을 "수박"으로 바꾼다는 것.
        // "\0" 은 null과 같은 표현으로 아스키 코드값 0x00을 나타낸다고 한다.
    }

    // 실행을 위한 테스트코드입니다.
    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));
    }
}

대단스....


아 그리고 String도 ' += ' 연산이 가능했다!

public class WaterMelon {
    public String watermelon(int n){
    String result="";
    for(int i=0; i<n; i++){
      result += i%2==0?"수":"박";
    }

        return result;
    }

    // 실행을 위한 테스트코드입니다.
    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));
    }
}


이 외에 문자열 동적 할당을 해주는 StringBuffer와 append를 이용한 방법도 있었다.


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));
    }
}


'프로그래밍 > 알고리즘(자바)' 카테고리의 다른 글

소수 찾기 Level 2 #Math.sqrt #소수  (0) 2018.05.06
삼각형출력하기 Level 1  (0) 2018.05.06
최대공약수와 최소공배수 Level 1 #유클리드 호제법  (0) 2018.05.06
가운데 글자 가져오기 Level 1 #substring #length(),length,size() 차이  (0) 2018.05.06
약수의 합 Level 1  (0) 2018.05.06
'프로그래밍/알고리즘(자바)' 카테고리의 다른 글
  • 소수 찾기 Level 2 #Math.sqrt #소수
  • 삼각형출력하기 Level 1
  • 최대공약수와 최소공배수 Level 1 #유클리드 호제법
  • 가운데 글자 가져오기 Level 1 #substring #length(),length,size() 차이
블루풀
블루풀
  • 블루풀
    [ IT] Be Dreamer
    블루풀
  • 전체
    오늘
    어제
    • 분류 전체보기 (35)
      • 프로그래밍 (33)
        • ChatGPT Q&A (0)
        • 안드로이드 스튜디오 (1)
        • 알고리즘(자바) (23)
        • GitHub (0)
        • Front-end (2)
        • Back-end (6)
        • 개발자 Basic English (1)
      • 취업정보 (0)
      • 일상 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    여행
    admin
    emmet
    ListView
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
블루풀
수박수박수박수박수박수? Level 1 #join #replace #StringBuffer #append #String '+=' 연산
상단으로

티스토리툴바