[프로그래머스 Level1] 문자열 1

Wonjun·2022년 6월 18일
0
post-thumbnail

📝 수박수박수박수박수박수?

문제 설명

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

해결 방법

길이가 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;
}

profile
알고리즘

0개의 댓글