일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- hive
- 하둡2
- 파이썬
- C
- hadoop2
- codingthematrix
- HelloWorld
- 코딩더매트릭스
- effective python
- collections
- 그래프이론
- 선형대수
- 텐서플로
- 알고리즘
- tensorflow
- 하이브
- Sort
- scrapy
- RNN
- NumPy
- GRU
- graph
- 딥러닝
- 주식분석
- yarn
- python
- LSTM
- Java
- C언어
- recursion
- Today
- Total
EXCELSIOR
[Level1] 수박수박수박수박수박수? (WaterMelon) 본문
1. 문제
water_melon함수는 정수 n을 매개변수로 입력받습니다.
길이가 n이고, 수박수박수...와 같은 패턴을 유지하는 문자열을 리턴하도록 함수를 완성하세요.
예를들어 n이 4이면 '수박수박'을 리턴하고 3이라면 '수박수'를 리턴하면 됩니다.
2. 풀이
1) 내가 작성한 코드
- 홀수, 짝수 판별하는 문제와 같이 나머지가 0 or 1인지를 판별하여 String에 더해주는 방식으로 문제를 풀었다.
public class WaterMelon { public String watermelon(int n){ //String str[] = new String[n]; String str = ""; for(int i=0; i<n; 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)); } }
2) 다른 풀이
- 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)); } }
3. 알아둘것
1) StringBuffer 클래스
- StringBuffer 클래스는 변하는 문자열을 다룰때 사용한다. StringBuffer 클래스의 객체의 크기는 동적인데, 크기를 지정하지 않아도 기본적으로 16개의 문자를 저장할 수 있는 Buffer를 가진다.
- String은 한번 생성되면 그 내용이 변하지 않지만, StringBuffer는 생성된 후에도 문자열의 내용을 변경할 수 있다.
2) StringBuffer 클래스 생성자
StringBuffer 클래스 생성자 | 설 명 |
StringBuffer() | 초기 문자열이 없고 16개의 문자를 저장할 수 있는 버퍼를 가진 객체를 생성한다. |
StringBuffer(String str) | str의 초기 문자열을 가지고 16개의 문자를 저장할 수 있는 버퍼를 가진 객체를 생성한다. |
StringBuffer(int length) | 초기 문자열이 없고 length개의 문자를 저장할 수 있는 버퍼를 가진 객체를 생성한다. |
3) StringBuffer 클래스의 메소드
StringBuffer 클래스 메소드 | 설 명 |
StringBuffer append(boolean b) | boolean 데이터를 현재 문자열 끝에 추가한다. |
StringBuffer append(char c) | char 데이터를 현재 문자열 끝에 추가한다. |
StringBuffer append(char[] str) | 문자 배열 데이터를 현재 문자열 끝에 추가한다. |
StringBuffer append(char[] str, int offset, int len) | 문자 배열의 offset부터 len개의 데이터를 현재 문자열 끝에 추가한다. |
StringBuffer append(double d) | double 데이터를 현재 문자열 끝에 추가한다. |
StringBuffer append(float f) | float 데이터를 현재 문자열 끝에 추가한다. |
StringBuffer append(int i) | int 데이터를 현재 문자열 끝에 추가한다. |
StringBuffer append(long l) | long 데이터를 현재 문자열 끝에 추가한다. |
StringBuffer append(Object obj) | 객체 데이터를 현재 문자열 끝에 추가한다. |
StringBuffer append(String str) | 문자열 데이터를 현재 문자열 끝에 추가한다. |
StirngBuffer append(StirngBuffer sb) | 문자열 데이터를 현재 문자열 끝에 추가한다. |
int capacity() | 현재 문자열의 총 용량이다. |
char charAt(int index) | index 위치의 문자를 반환한다. |
StringBuffer delete(int start, int end) | start에서 end까지의 문자열 중에서 삭제한 문자열을 반환한다. |
StringBuffer deleteCharAt(int index) | index 위치의 문자 중 삭제한 문자열을 반환 한다. |
int indexOf(String str) | str 문자열의 인덱스 위치를 반환한다. |
int indexOf(String str, int fromIndex) | 특정 위치로부터 시작하여 str 문자열의 인덱스 위치를 반환한다. |
StringBuffer insert(int offset, boolean b) | offset 위치에 boolean 데이터를 삽입한다. |
StringBuffer insert(int offset, char c) | offset 위치에 char 데이터를 삽입한다. |
StringBuffer insert(int offset, char[] str) | offset 위치에 문자 배열 데이터를 삽입한다. |
StringBuffer insert (int index, char[] str, int offset, int len) | offset 위치에 문자 배열의 일부 문자 데이터를 삽입한다. |
StringBuffer insert(int offset, double d) | offset 위치에 double 데이터를 삽입한다. |
StringBuffer insert(int offset, float f) | offset 위치에 float 데이터를 삽입한다. |
StringBuffer insert(int offset, int i) | offset 위치에 int 데이터를 삽입한다. |
StringBuffer insert(int offset, long l) | offset 위치에 long 데이터를 삽입한다. |
StirngBuffer insert(int offset, String str) | offset 위치에 문자열 데이터를 삽입한다. |
StringBuffer insert(int offset, Object obj) | offset 위치에 객체 데이터를 삽입한다. |
int lastIndexOf(String str) | str의 최종 인덱스 위치를 반환한다. |
int lastIndexOf(String str, int fromIndex) | fromIndex로부터 시작하여 str의 최종 인덱스 위치를 반환한다. |
int length() | 문자열 내의 문자 개수를 반환한다. |
StringBuffer replace(int start, int end, String str) | start에서 end의 문자열을 str 문자열로 대체하여 반환한다. |
StringBuffer reverse() | 문자열의 역순으로 된 문자열을 반환한다. |
void setCharAt(int index, char ch) | index 위치의 문자를 ch 문자로 설정한다. |
void setLength(int newLength) | 문자열의 버퍼 크기를 새롭게 설정한다. |
String substring(int start) | start 위치로부터의 일부 문자열을 반환한다. |
String substring(int start, int end) | start에서 end까지의 일부 문자열을 반환한다. |
String toString() | String으로 변환한다. |
[출처: http://hyeonstorage.tistory.com/179]