no image
프로그래머스/C++ [PCCE 기출문제] 4번 / 저축
문제 설명 진우는 돈을 모으기 위해 저축을 하려고 합니다. 목표로 하는 금액은 100만 원이며, 첫 달에 일정 금액을 넣은 뒤 70만 원까지는 매월 조금씩 저축하다가 70만 원 이후부터는 월 저축량을 늘려 빠르게 목표 금액을 달성하고자 합니다. 첫 달에 저축하는 금액을 나타내는 정수 start, 두 번째 달 부터 70만 원 이상 모일 때까지 매월 저축하는 금액을 나타내는 정수 before, 100만 원 이상 모일 때 까지 매월 저축하는 금액을 나타내는 정수 after가 주어질 때, 100만 원 이상을 모을 때까지 걸리는 개월 수를 출력하도록 빈칸을 채워 코드를 완성해 주세요. 제한사항 0 ≤ start ≤ 99 1 ≤ before ≤ after ≤ 25 입출력 예 입력 #1 28 6 8 출력 #1 12 ..
2024.01.11
no image
프로그래머스/C++ [PCCE 기출문제] 3번 / 나이 계산
문제 설명 나이를 세는 방법은 여러 가지가 있습니다. 그중 한국식 나이는 태어난 순간 1살이 되며 해가 바뀔 때마다 1살씩 더 먹게 됩니다. 연 나이는 태어난 순간 0살이며 해가 바뀔 때마다 1살씩 더 먹게 됩니다. 각각 나이의 계산법은 다음과 같습니다. 한국식 나이 : 현재 연도 - 출생 연도 + 1 연 나이 : 현재 연도 - 출생 연도 출생 연도를 나타내는 정수 year와 구하려는 나이의 종류를 나타내는 문자열 age_type이 주어질 때 2030년에 몇 살인지 출력하도록 빈칸을 채워 코드를 완성해 주세요. age_type이 "Korea"라면 한국식 나이를, "Year"라면 연 나이를 출력합니다. 제한사항 1950 ≤ year ≤ 2030 age_type은 "Korea" 또는 "Year"만 주어집니다..
2024.01.11
no image
프로그래머스/C++ [PCCE 기출문제] 2번 / 피타고라스의 정리
문제 설명 직각삼각형이 주어졌을 때 빗변의 제곱은 다른 두 변을 각각 제곱한 것의 합과 같습니다. 직각삼각형의 한 변의 길이를 나타내는 정수 a와 빗변의 길이를 나타내는 정수 c가 주어질 때, 다른 한 변의 길이의 제곱, b_square 을 출력하도록 한 줄을 수정해 코드를 완성해 주세요. 제한사항 1 ≤ a > a >> c; int b_square = (c*c) - (a*a); cout
2024.01.11
no image
프로그래머스/C++ [PCCE 기출문제] 1번 / 출력
문제 설명 주어진 초기 코드는 변수에 데이터를 저장하고 출력하는 코드입니다. 아래와 같이 출력되도록 빈칸을 채워 코드를 완성해 주세요. 출력 예시 Spring is beginning 13 310 #include using namespace std; int main(void) { string msg = "Spring is beginning"; int val1 = 3; string val2 = "3"; cout
2024.01.11
no image
프로그래머스/C++ 길이에 따른 연산
문제 설명 정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ num_list의 길이 ≤ 20 1 ≤ num_list의 원소 ≤ 9 num_list의 원소를 모두 곱했을 때 2,147,483,647를 넘는 입력은 주어지지 않습니다. 입출력 예 num_list result [3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1] 51 [2, 3, 4, 5] 120 입출력 예 설명 입출력 예 #1 리스트의 길이가 13이므로 모든 원소의 합인 51을 return합니다. 입출력 예 #2 리스트의 길이가 4이므로 모든 원소의 곱인 120..
2024.01.11
no image
프로그래머스/C++ 배열 만들기 4
문제 설명 정수 배열 arr가 주어집니다. arr를 이용해 새로운 배열 stk를 만드려고 합니다. 변수 i를 만들어 초기값을 0으로 설정한 후 i가 arr의 길이보다 작으면 다음 작업을 반복합니다. 만약 stk가 빈 배열이라면 arr[i]를 stk에 추가하고 i에 1을 더합니다. stk에 원소가 있고, stk의 마지막 원소가 arr[i]보다 작으면 arr[i]를 stk의 뒤에 추가하고 i에 1을 더합니다. stk에 원소가 있는데 stk의 마지막 원소가 arr[i]보다 크거나 같으면 stk의 마지막 원소를 stk에서 제거합니다. 위 작업을 마친 후 만들어진 stk를 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ arr의 길이 ≤ 100,000 1 ≤ arr의 원소 ≤ 100,00..
2024.01.11
no image
프로그래머스/C++ 배열 만들기 2
문제 설명 정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다. 제한사항 1 ≤ l ≤ r ≤ 1,000,000 입출력 예 l r result 5 555 [5, 50, 55, 500, 505, 550, 555] 10 20 [-1] 입출력 예 설명 입출력 예 #1 5 이상 555 이하의 0과 5로만 이루어진 정수는 작은 수부터 5, 50, 55, 500, 505, 550, 555가 있습니다. 따라서 [5, 50, 55, 500, 505, 550, 555]를 return 합니다. 입출력 예 #2 10 이..
2024.01.11
no image
Direct X 9 셋팅 (Visual Studio C++)
안녕하세요! Visual Studo C++에서 Direct X 9 셋팅 방법을 소개하겠습니다! 일단 https://directx-software-development-kit.en.lo4d.com/download DirectX 9 SDK DirectX 9 SDK 9.29.1962 (Gaming graphics toolkit) for Windows ✔ free download with 2 mirrors. Safe, secure and tested for viruses and malware. directx-software-development-kit.en.lo4d.com 여기서 Dirext X 9 의 SDK 를 다운받아줍니다. 그리고 Visual Studio 2022에서 새 프로젝트 만들기를 선택해주고 Win..
2024.01.04
반응형

문제 설명

진우는 돈을 모으기 위해 저축을 하려고 합니다. 목표로 하는 금액은 100만 원이며, 첫 달에 일정 금액을 넣은 뒤 70만 원까지는 매월 조금씩 저축하다가 70만 원 이후부터는 월 저축량을 늘려 빠르게 목표 금액을 달성하고자 합니다.

첫 달에 저축하는 금액을 나타내는 정수 start, 두 번째 달 부터 70만 원 이상 모일 때까지 매월 저축하는 금액을 나타내는 정수 before, 100만 원 이상 모일 때 까지 매월 저축하는 금액을 나타내는 정수 after가 주어질 때, 100만 원 이상을 모을 때까지 걸리는 개월 수를 출력하도록 빈칸을 채워 코드를 완성해 주세요.


제한사항

  • 0 ≤ start ≤ 99
  • 1 ≤ before ≤ after ≤ 25

입출력 예

입력 #1

28 6 8

출력 #1

12

입력 #2

75 8 25

출력 #2

2


입출력 예 설명

입출력 예 #1

  • 매월 저축된 금액은 아래 표와 같습니다. 따라서 12를 출력합니다.

1 2 3 4 5 6 7 8 9 10 11 12

28 34 40 46 52 58 64 70 78 86 94 102

입출력 예 #2

  • 첫 달 저축된 금액이 70이 넘으므로 두 번째 달부터 바로 after= 25 만큼 저축합니다. 따라서 2를 출력합니다.

1 2

75 100
#include <iostream>

using namespace std;

int main(void) {
    int start;
    int before;
    int after;
    cin >> start >> before >> after;

    int money = start;
    int month = 1;

    while (money < 70) {
        money += 
before 
;
        month++;
    }
    while (
money
 < 100) {
        
money+= after
;
        month++;
    }
    cout << month << endl;
    return 0;
}

 

반응형
반응형

문제 설명

나이를 세는 방법은 여러 가지가 있습니다. 그중 한국식 나이는 태어난 순간 1살이 되며 해가 바뀔 때마다 1살씩 더 먹게 됩니다. 연 나이는 태어난 순간 0살이며 해가 바뀔 때마다 1살씩 더 먹게 됩니다. 각각 나이의 계산법은 다음과 같습니다.

한국식 나이 : 현재 연도 - 출생 연도 + 1

연 나이 : 현재 연도 - 출생 연도

출생 연도를 나타내는 정수 year와 구하려는 나이의 종류를 나타내는 문자열 age_type이 주어질 때 2030년에 몇 살인지 출력하도록 빈칸을 채워 코드를 완성해 주세요. age_type이 "Korea"라면 한국식 나이를, "Year"라면 연 나이를 출력합니다.


제한사항

  • 1950 ≤ year ≤ 2030
  • age_type은 "Korea" 또는 "Year"만 주어집니다.

입출력 예

입력 #1

2000 Korea

출력 #1

31

입력 #2

1999 Year

출력 #2

31


입출력 예 설명

입출력 예 #1

  • 2030년에 2000년생의 한국식 나이는 2030 - 2000 + 1 = 31살입니다.

입출력 예 #2

  • 2030년에 1999년생의 연 나이는 2030 - 1999 = 31살입니다.

 

#include <iostream>

using namespace std;

int main(void) {
    int year, answer;
    string age_type;
    cin >> year >> age_type;

    if (age_type == 
"Korea"
) {
        answer = 
2030-year+1
;
    }
    else if (age_type == "Year") {
        
answer = 2030-year
;
    }

    cout << answer << endl;
    return 0;
}

 

반응형
반응형

문제 설명

직각삼각형이 주어졌을 때 빗변의 제곱은 다른 두 변을 각각 제곱한 것의 합과 같습니다.

 

직각삼각형의 한 변의 길이를 나타내는 정수 a와 빗변의 길이를 나타내는 정수 c가 주어질 때, 다른 한 변의 길이의 제곱, b_square 을 출력하도록 한 줄을 수정해 코드를 완성해 주세요.


제한사항

  • 1 ≤ a < c ≤ 100

입출력 예

입력 #1

3 5

출력 #1

16

입력 #2

9 10

출력 #2

19


입출력 예 설명

입출력 예 #1

  • a = 9, c = 25 이므로 16을 출력합니다.2
  • 2

입출력 예 #2

  • a = 81, c = 100 이므로 19를 출력합니다.2
  • 2
#include <iostream>

using namespace std;

int main(void) {
    int a;
    int c;
    cin >> a >> c;
    
    int b_square = (c*c) - (a*a);
    cout << b_square << endl;
    return 0;
}

 

반응형
반응형

문제 설명

주어진 초기 코드는 변수에 데이터를 저장하고 출력하는 코드입니다. 아래와 같이 출력되도록 빈칸을 채워 코드를 완성해 주세요.


출력 예시

Spring is beginning

13

310

 

#include <iostream>

using namespace std;

int main(void) {
    string msg = 
"Spring is beginning";
    int val1 = 
3;
    string val2 = 
"3";

    cout << msg << endl;
    cout << val1 + 10 << endl;
    cout << val2 + "10" << endl;

    return 0;
}

 

반응형
반응형

문제 설명

정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.


제한사항

  • 2 ≤ num_list의 길이 ≤ 20
  • 1 ≤ num_list의 원소 ≤ 9
  • num_list의 원소를 모두 곱했을 때 2,147,483,647를 넘는 입력은 주어지지 않습니다.

입출력 예

num_list result

[3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1] 51
[2, 3, 4, 5] 120

입출력 예 설명

입출력 예 #1

  • 리스트의 길이가 13이므로 모든 원소의 합인 51을 return합니다.

입출력 예 #2

  • 리스트의 길이가 4이므로 모든 원소의 곱인 120을 return합니다.
#include <string>
#include <vector>

using namespace std;

int solution(vector<int> num_list) {
    int answer = 0;
    
    if(num_list.size() >= 11)
        for(int i=0; i<num_list.size()-1; i++)
            num_list[i+1] += num_list[i];
    else{
        for(int i=0; i<num_list.size()-1; i++)
            num_list[i+1] *= num_list[i];
    }
    answer = num_list[num_list.size()-1];
    
    return answer;
}

음 그냥 for문으로 묶어서 할까 했지만 속도로 보면 이게 뭔가 더 빠를거같아서 이렇게 했다..ㅎㅎ..

반응형
반응형

문제 설명

정수 배열 arr가 주어집니다. arr를 이용해 새로운 배열 stk를 만드려고 합니다.

변수 i를 만들어 초기값을 0으로 설정한 후 i가 arr의 길이보다 작으면 다음 작업을 반복합니다.

  • 만약 stk가 빈 배열이라면 arr[i]를 stk에 추가하고 i에 1을 더합니다.
  • stk에 원소가 있고, stk의 마지막 원소가 arr[i]보다 작으면 arr[i]를 stk의 뒤에 추가하고 i에 1을 더합니다.
  • stk에 원소가 있는데 stk의 마지막 원소가 arr[i]보다 크거나 같으면 stk의 마지막 원소를 stk에서 제거합니다.

위 작업을 마친 후 만들어진 stk를 return 하는 solution 함수를 완성해 주세요.


제한사항

  • 1 ≤ arr의 길이 ≤ 100,000
    • 1 ≤ arr의 원소 ≤ 100,000

입출력 예

arr result

[1, 4, 2, 5, 3] [1, 2, 3]

입출력 예 설명

입출력 예 #1

  • 각 작업을 마친 후에 배열의 변화를 나타내면 다음 표와 같습니다.

i arr[i] stk

0 1 []
1 4 [1]
2 2 [1, 4]
2 2 [1]
3 5 [1, 2]
4 3 [1, 2, 5]
4 3 [1, 2]
- - [1, 2, 3]
  • 따라서 [1, 2, 3]을 return 합니다.
#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> arr) {
    vector<int> stk;
    int i=0;
    while(i < arr.size()){
        if(stk.empty()) stk.push_back(arr[i++]);
        else if(stk.back() < arr[i]) stk.emplace_back(arr[i++]);
        else stk.erase(stk.end() - 1);
    }
    
    return stk;
}

 

반응형
반응형

문제 설명

정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.

만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.


제한사항

  • 1 ≤ l ≤ r ≤ 1,000,000

입출력 예

l r result

5 555 [5, 50, 55, 500, 505, 550, 555]
10 20 [-1]

입출력 예 설명

입출력 예 #1

  • 5 이상 555 이하의 0과 5로만 이루어진 정수는 작은 수부터 5, 50, 55, 500, 505, 550, 555가 있습니다. 따라서 [5, 50, 55, 500, 505, 550, 555]를 return 합니다.

입출력 예 #2

  • 10 이상 20 이하이면서 0과 5로만 이루어진 정수는 없습니다. 따라서 [-1]을 return 합니다.
#include <string>
#include <vector>

using namespace std;

vector<int> solution(int l, int r) {
    vector<int> answer;
    for(int i=l; i<=r; i++){
        string strNum = to_string(i);
        bool zeroFive = true;
        for(char c : strNum){
            if(c != '0' && c != '5'){
                zeroFive = false;
                break;   
            }
        }
        if(zeroFive) answer.push_back(i);
    }
    if(answer.empty()) answer.push_back(-1);
    
    return answer;
}

 

l부터 r값만큼 forㅁ누을 돌려주고 들어오는 값마다 string으로 변환

그리고 bool 변수를 둬서 0과5만 들어가있는지 판단

맞는다면 answer에 넣어주고 아니라면 -1값 넣어주기

반응형
반응형

안녕하세요! Visual Studo C++에서 Direct X 9 셋팅 방법을 소개하겠습니다!

 

일단

https://directx-software-development-kit.en.lo4d.com/download

 

DirectX 9 SDK

DirectX 9 SDK 9.29.1962 (Gaming graphics toolkit) for Windows ✔ free download with 2 mirrors. Safe, secure and tested for viruses and malware.

directx-software-development-kit.en.lo4d.com

 

여기서 Dirext X 9 의 SDK 를 다운받아줍니다.

 

그리고 Visual Studio 2022에서 

새 프로젝트 만들기를 선택해주고

Windows 데스크톱 마법사를 선택한뒤 다음을 눌러줍니다!

 

만들기를 클릭하시면 

 

이렇게 창이 뜨는데 데스크톱 애플리케이션으로 선택해주세요!

그리고 추가 옵션에서 빈 프로젝트를 체크해줍니다!

 

다음으로 넘어가면 이렇게 아무것도 안나오는데요!

소스 파일에서

추가 - 새항목을 클릭해서 새로운 항목을 만들어줍니다!

 

이렇게 새 항목을 추가한 뒤 코드를 작성했을때 오류가 나옵니다

당연히! 아직 Dirext X 9 셋팅이 안되어있기 때문에 오류가 나는겁니다.

 

상단에 보시면 x64로 되어있으실텐데 x86으로 바꿔주고

여기에서 상단에 프로젝트를 들어간뒤 새항목으로 만든 프로젝트의 속성을 들어가줍니다!

 

구성 속성 - 고급

에 들어가셔서 문자 집합 의 유니코드를 - 멀티바이트 문자 집합 사용으로 바꿔줍니다!

 

그리고 구성 속성 - VC++ 디렉터리에서

2개를 바꿔줄겁니다!

포함 디렉터리와 라이브러리 디렉터리에 추가를 해줄건데

 

 

저렇게 포함 디렉터리의 오른쪽에 보시면 밑 화살표를 클릭해서 편집을 눌러줍니다!

 

 

그러면 포함 디렉터리에 대한 창이 나오는데 현재 파란색으로 표시된 공간의 오른쪽을 클릭하면

 

이런식으로 폴더를 선택하는 창이 나옵니다!

기본적으로 C드라이브 - Program Files (x86) - Microsoft DirectX SDK (June 2010) 

이렇게 경로가 지정되어 있으실겁니다!

포함 디렉터리에서는 

C드라이브 - Program Files (x86) - Microsoft DirectX SDK (June 2010) - inculde를

선택한뒤 폴더 선택을 눌러줍니다!

아무것도 안보이실텐데 정상입니다! 걱정마세요!

이런식으로 굵은 글자가 되셨다면 포함 디렉터리는 끝입니다!

 

 

자 방금과 같은 방법으로 라이브러리 디렉터리도 똑같은 방식으로 경로 설정을 해줍니다!

경로는 

C드라이브 - Program Files (x86) - Microsoft DirectX SDK (June 2010) - Lib - x86

입니다!

포함 디렉터리와 다른 Lib 을 들어간 뒤 x86을 선택해주셔야 합니다!

 

 

이런식으로 2가지의 디렉터리를 바꿔주시구

 

 

마지막 입니다! 링커의 입력에 들어가셔서

 

추가 종속성의 편집을 클릭해줍니다!

 

 

d3d9.lib
d3dx9.lib
winmm.lib

 

이렇게 3개의 파일을 입력해주고 확인을 눌러주시면 됩니다!

 

적용을 눌러주시면 방금 있던 오류가 싹 사라집니다!

 

 

Direct X 9 셋팅은 끝이났구 아까 오류났던 코드도 잘 돌아가는걸 확인할 수 있습니다!

코드는 다음 시간에 또 알아보도록 할게요!

 

셋팅은 매번 새로운 프로젝트를 만들때마다 다시 셋팅해주어야 합니다 한 번 한다고 계속 사용하지는 못해요ㅠㅜ

이상 Dirext X 9 셋팅방법 이였습니다!

 

반응형