songdev
songdev
songdev
전체 방문자
오늘
어제
  • 분류 전체보기 (78)
    • Web 개발 (6)
    • 리눅스 (5)
    • git (5)
    • Bigdata (8)
      • 하둡 Architecture 번역 (6)
      • Ambari (2)
    • 코테 (22)
      • 프로그래머스 (22)
    • 자격증 (7)
      • 정보처리기사 (5)
      • SQLD (2)
    • 스터디 (18)
      • 웹 프로그래밍 (3)
      • 개념정리 (4)
      • 예제 (6)
      • 바닐라 JS로 크롬 앱 만들기 (5)
    • 일상 (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 정보처리기사
  • sort()
  • 자바스크립트
  • copyOfRange()
  • parseInt()
  • SQLD
  • 배열
  • javascript
  • 프로그래머스
  • 정보처리기사 필기
  • charAt()
  • 리눅스
  • 배열의 복사
  • github
  • level1
  • 깃허브
  • 정렬
  • Java
  • 향상된 버블정렬
  • github push

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
songdev

songdev

수박수박수박수박수박수?/java/프로그래머스/Level1
코테/프로그래머스

수박수박수박수박수박수?/java/프로그래머스/Level1

2020. 2. 9. 11:05
반응형

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

 

코딩테스트 연습 - 수박수박수박수박수박수? | 프로그래머스

길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 입출력 예 n return 3 수박수 4 수박수박

programmers.co.kr

 

<수박수박수박수박수박수?>

 

 

○ 처음 푼 풀이 (2020.02.09)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
  public String solution(int n) {
      String answer = "";
      
      // 0부터 1씩 증가할 임의의 숫자 i 선언
      int i = 0;
    
        do {
            answer += "수";
            i++;                 // "수"를 찍을때마다 i값은 1씩 증가
            
            if(n==i) break;      // n이 i와 같아질때 반복문 벗어나기
            else if(n>i) {
                answer += "박";
                i++;             // "박"을 찍을때마다 i값은 1씩 증가
            }
            
        }while(n>i);             // n이 i보다 클 때는 계속 반복하기
        return answer;
  }
}
Colored by Color Scripter
cs

 

- 길이가 n보다 작을때까지 "수", "박" 문자를 번갈아가며 n번 출력한다.

- 반복문을 사용하여 n(길이)만큼 돌리는데 그 수가 i(0부터 1씩 증가하는 변수 : 현재의 길이)랑 같아질 경우 종료한다.

- "수"랑 "박"을 이어서 출력할 경우 += 연산자를 통해 String을 더하여 출력 할 수 있다.

  (이전 "박"까지 찍히고 난 이후에 "수"가 더해져야 하므로 9번 라인에도 +=연산자가 필요)

- "수"와 "박"이 하나씩 찍힐 때 마다 i값(현재의 길이)는 1씩 증가하게 되며, n(길이)가 아직 i(현재의 길이)보다 클 경우는 반복문을 계속 수행한다.

 

○ 좋아요를 많이 받은 풀이

 

1. subString()메소드를 사용하여 0번지 부터 n번지까지 문자 출력하기

2. StringBuffer()와 append()메소드를 사용사여 삼항 연산자로 풀이하기

3. for문과 삼항연산자를 이용하여 더 간단히 풀이해보기

 

재 풀이 (2020.04.20)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
  public String solution(int n) {
      String answer = "";
      
      for(int i=1;i<=n;i++)
      {
          if(i%2==1)
              answer += "수";
          else
              answer += "박";
      }
      return answer;
  }
}
Colored by Color Scripter
cs

 

반응형

'코테 > 프로그래머스' 카테고리의 다른 글

소수 찾기/java/프로그래머스/Level1  (0) 2020.02.15
행렬의 덧셈/java/프로그래머스/Level1  (0) 2020.02.12
평균 구하기/java/프로그래머스/level1  (0) 2020.02.12
문자열을 정수로 바꾸기 /java/프로그래머스/Level1  (0) 2020.02.09
직사각형 별찍기/java/프로그래머스/Level1  (0) 2020.02.08
    '코테/프로그래머스' 카테고리의 다른 글
    • 행렬의 덧셈/java/프로그래머스/Level1
    • 평균 구하기/java/프로그래머스/level1
    • 문자열을 정수로 바꾸기 /java/프로그래머스/Level1
    • 직사각형 별찍기/java/프로그래머스/Level1
    songdev
    songdev

    티스토리툴바