문제 :
길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다.
제한 조건 :
- n은 길이 10,000이하인 자연수입니다.
입출력 예 :
n | return |
3 | 수박수 |
4 | 수박수박 |
코드 :
#include <string>
#include <vector>
using namespace std;
string solution(int n) {
string answer;
for(int i=1;i<=n/2;i++)
answer += "수박";
if (n % 2 != 0) answer+="수";
return answer;
}
다시 한번 짚고 넘어가기 :
-&연산자 사용하기
for (int i = 0; i < n; i++)
i & 1 ? answer += "박" : answer += "수";
비트 연산자 AND연산자로 홀수인지를 판단하는 식이다. i가 0이면 0&1이면 0을 반환하기 때문에 index가 짝수면 "수",홀수면 "박"을 string에 넣어준다. (홀수의 이진수는 항상 xxxx...xxxx1이 되고 1은 조건식에서 참을 의미한다.)
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스/level1/c++] 문자열을 정수로 바꾸기 (0) | 2021.01.08 |
---|---|
[프로그래머스/level1/c++] 두 개 뽑아서 더하기 (0) | 2021.01.08 |
[프로그래머스/level1/c++] 소수찾기 (0) | 2021.01.08 |
[프로그래머스/level1/c++] 서울에서 김서방 찾기 (0) | 2021.01.07 |
[프로그래머스/level1/c++] 문자열 다루기 기본 (0) | 2021.01.07 |