구현목표
패턴이 같은 문자열을 리턴하는 함수

문제풀이
"수박수박수.." 같은 패턴으로 진행되는 문자열 존재, 정수 n이 주어질 때 n이 4이면 "수박수박" 3이면 "수박수" 리턴하기
풀이과정
1.주어진 문자열의 인덱스 파악 string[0] = 수 string[1] = 박
2.0이거나 짝수의 경우 "수" 리턴 홀수의 경우 "박" 리턴 규칙파악
3.주어진 정수 n이 홀수인지 짝수인지 파악
4.짝수번째 "수" 더하고 홀수번째 "박" 더해서 리턴하기
풀이코드
#include <string>
#include <vector>
using namespace std;
string solution(int n) {
string answer = "";
for(int i = 0; i < n; i++)
{
if(i % 2 == 0)
{
answer += "수";
}
else
{
answer += "박";
}
}
return answer;
}
테스트 결과

채점결과

다른 풀이방법 리뷰

비트연산자 & : 두개의 비트가 모두 1일경우 1을 반환하는 & 연산자
삼항연산자 ? : 앞에식이 참일경우 왼쪽 거짓일경우 오른쪽을 반환
문제풀이 : 인덱스 0부터 n - 1 까지 도는 반복문에서 각 반복마다 인덱스와 1을 비트연산자를 통해 판단후 참일경우 "박"을 반환 거짓일경우"수" 를반환 한다. 1은 이진수로 표현할경우 0000...0001이고 홀수의 이진수의 경우 마지막 자리가 항상 1이다. 해당 규칙을통해 1과 홀수를 & 연산할경우 홀수일경우에만 참이므로 "박" 반환 그외에 모든경우에는 "수"를 반환하기때문에 식이 성립하는것이다.