본문 바로가기
C++/프로그래머스 문제풀이

23-01-20

by GameStudy 2023. 1. 20.

Ex) Level1 - 3진법 뒤집기

<hide/>

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    
    string strTrinary = "";
    while (0 < n)
    {
        strTrinary += to_string(n % 3);
        n /= 3;
    }
    
    size_t uSizeOfTrinary = strTrinary.size();
    for (size_t i = 0; i < uSizeOfTrinary; ++i)
    {
        answer = answer * 3 + (strTrinary[i] - '0');
    }
    
    return answer;
}

 

Ex) Level1 - 이상한 문자 만들기 [X]

<hide/>

#include <string>
#include <vector>
#include <sstream>

using namespace std;

string solution(string s) {
    string answer = "";
    
    stringstream ss;
    ss.str(s);
    string strWord = "";
    size_t uSizeOfWord;
    while (false == ss.eof())
    {
        ss >> strWord;
        uSizeOfWord = strWord.size();
        for (size_t i = 0; i < uSizeOfWord; ++i)
        {
            if (i % 2 == 0)
            {
                answer += toupper(strWord[i]);
            }
            else
            {
                answer += tolower(strWord[i]);
            }
        }
        if (false == ss.eof())
        {
            answer += ' ';   
        }
    }
    
    return answer;
}

 

Ex) Level1 - 예산 [X]

  탐욕법? 인듯한데..

<hide/>

#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> d, int budget) {
    int answer = 0;
    
    sort(d.begin(), d.end(), [](int a, int b) {
        return a > b;
    });
    
    int iSizeOfD = static_cast<int>(d.size());
    int iSum = 0;
    int i;
    for (i = 0; i < iSizeOfD; ++i)
    {
        iSum += d[i];
        answer = i + 1;
        if (budget < iSum)
        {
            break;
        }
    }
    
    return answer;
}

'C++ > 프로그래머스 문제풀이' 카테고리의 다른 글

23-02-02  (0) 2023.02.02
23-01-19  (0) 2023.01.19
23-01-18  (0) 2023.01.18
23-01-17  (0) 2023.01.17
23-01-16  (0) 2023.01.16

댓글