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
'programmers code review > _step1' 카테고리의 다른 글
프로그래머스 위클리 챌린지 4주차 (0) | 2021.08.25 |
---|---|
소수 찾기 (4) | 2021.08.24 |
프로그래머스 위클리 챌린지 2주차 (0) | 2021.08.23 |
프로그래머스 위클리 챌린지 1주차 (0) | 2021.08.23 |
문자열을 정수로 바꾸기 (0) | 2021.08.17 |
댓글