문제 설명
수박수박수박수박수박수?
해결 방법
길이가 n인 string이므로 n만큼 반복을 하며 "수"와 "박"을 추가한다. 패턴 상 i가 짝수이면 "수"를 추가하고 홀수이면 "박"을 추가한다.
💻소스코드
#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;
}
문제 설명
직사각형 별찍기
해결 방법
이중 for문으로 해결하는 것이 일반적인 풀이라고 생각한다
💻소스코드
#include <iostream>
using namespace std;
int main(void) {
int n, m;
cin >> n >> m;
for (int i = 0; i < m; i++){
for (int j= 0; j < n; j++)
cout << "*";
cout << "\n";
}
return 0;
}
문제 설명
문자열 다루기 기본
해결 방법
문자열의 길이가 4 또는 6이 아닐 때와 문자열 속의 하나의 요소라도 숫자가 아니면 False를 리턴
앞의 조건이 아니라면 True를 리턴
💻소스코드
#include <string>
#include <vector>
using namespace std;
bool solution(string s) {
if (!(s.length() == 4 || s.length() == 6))
return false;
for(int i = 0; i < s.length(); i++){
if (!('0' <= s[i] && s[i] <= '9'))
return false;
}
return true;
}
문제 설명
가운데 글자 가져오기
해결 방법
단어의 길이가 홀수일 때 가운데 글자는문자열 s의 길이 / 2
번째 인덱스(int는 자동내림)에 있다
단어의 길이가 짝수일 때 문자열 추출 함수인substr()
을 사용하여 가운데 두 글자를 추출했다
💻소스코드
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
if (s.length() % 2 == 1)
answer = s[s.length() / 2];
else
answer = s.substr(s.length() / 2 - 1, 2);
return answer;
}
문제 설명
핸드폰 번호 가리기
해결 방법
phone_number
의 크기를 구한 후 0번째 인덱스부터 "크기 - 5" 인덱스까지*
을 넣어주면 된다
💻소스코드
#include <string>
#include <vector>
using namespace std;
string solution(string phone_number) {
string answer = phone_number;
int size = phone_number.length();
for(int i = 0; i < size - 4; i++)
answer[i] = '*';
return answer;
}
문제 설명
서울에서 김서방 찾기
해결 방법
seoul 벡터의 element들을 참조하면서 "Kim"을 찾는다. 해당 인덱스의 element가 "Kim"이라면 인덱스를 to_string을 사용해 문자열로 변환한 후 '+' 연산자로 문자열로 연결하여 return한다.
💻소스코드
#include <string>
#include <vector>
using namespace std;
string solution(vector<string> seoul) {
string answer = "";
for (int i = 0; i < seoul.size(); i++){
if (seoul[i] == "Kim")
answer = "김서방은 " + to_string(i) + "에 있다";
}
return answer;
}