본문 바로가기

수박수박수박수박수박수?

programmers code review/_step1 2021. 8. 24.
728x90

프로그래머스 1단계 Java 수박수박수박수박수박수? 문제입니다.


문제 설명

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

 

제한 조건

  • n은 길이 10,000이하인 자연수입니다.

입출력 예

n return
3 "수박수"
4 "수박수박"

 

문제 해결 방법

① 입력받은 n을 2로 나누었을 경우

    ⑴ 0인 경우 ▶ 문자열에 "수" 추가

    ⑵ 1인 경우 ▶ 문자열에 "박" 추가

② n만큼 반복


더보기
class Solution {
    public String solution(int n) {
        String answer = "";
    	// ② n만큼 반복
    	for (int i = 0; i < n; i++) {
            // ① 입력받은 n을 2로 나누었을 경우
            // ⑴ 0인 경우 ▶ 문자열에 "수" 추가
            // ⑵ 1인 경우 ▶ 문자열에 "박" 추가
            answer += i % 2 == 0 ? "수" : "박";
    	}
    	return answer;
    }
}

 

※ 수행속도

String의 + 연산자를 사용하여 문자열 연결처리하는 것은 사실 속도가 굉장히 느립니다

프로그램의 속도가 중요할 때에는 상황에 따라 StringBuffer 또는 StringBuilder를 사용하여 문자열을 연결하는 것이 좋습니다.

 

※ 삼항연산자

① 의 반환값은 삼항연산자로 값을 정하게 되는데, if/else 문과 매우 흡사하여 코드가 간결해지는데에 도움이 됩니다.

삼항연산자 사용법은 다음과 같으며, 참 또는 거짓의 값을 반드시 반환하는 것이 if/else 문과의 차이점입니다.

Condition ? TRUE : FALSE

if/else 문에 비해 구문이 간단하다해서 속도가 빠른 것은 아닙니다.

 

※ 위 코드는 해결 방법 중 한가지이며 더 효율적인 코드가 있을 수 있습니다.

 

문제 풀어보기 ▶ https://programmers.co.kr/learn/courses/30/lessons/12922?language=java
 

코딩테스트 연습 - 수박수박수박수박수박수?

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한

programmers.co.kr

 

 

댓글