no image
유니티 머신러닝 1(Unity ML-Agents)
자세한 설명은 유니티 머신러닝 깃 허브에 잘 나와있습니다! https://github.com/Unity-Technologies/ml-agents/blob/develop/docs/Installation.md 유니티 머신러닝 깃허브 기준 설명서 -> docs -> Installation.md 로 들어가시면 됩니다! 현재 2024년 3월 기준으로 블로그를 작성하였고 다른 블로그를 참고하여도 계속 버전 문제가 커서 유니티 머신러닝 깃허브를 직접 참고하여 블로그를 새로 작성해봅니다! 일단 준비물은 https://github.com/Unity-Technologies/ml-agents GitHub - Unity-Technologies/ml-agents: The Unity Machine Learning Agents T..
2024.03.19
no image
유니티 Unity 보스 드래곤(Boss Dragon) 기획[졸업작품]
이번에 게임 졸업작품을 제작하기전 졸업작품 기획입니다! 이번에 기획을 해보면서 기획도 중요하다는걸 깨달았다예전에 잠깐 방학에 기획없이 친구들과 작은 게임 프로젝트를 진행했는데 확실히 방향과 틀을 잡고 시작하는것과그냥 맨땅에 헤딩하는것과는 다르다는걸 느꼈다게임제작이 기획대로 흘러갈지 모르겠지만 열심히 해보자@@ https://youtu.be/_tI3N9Zm87A프로토타입 1https://youtu.be/BD2RX2lEqpI프로토타입 2 https://youtu.be/bZN9wO0vHm4최종 프로토타입
2024.01.29
no image
프로그래머스/C++ [PCCE 기출문제] 8번 / 창고 정리
문제 설명 선빈이는 게임을 즐기던 중 가지고 있는 물건이 너무 많아 창고 정리를 하기로 했습니다. 선빈이가 보유한 게임 속 창고는 여러 칸으로 나누어져 있고 각 칸에는 물건들이 담겨있습니다. 창고를 정리할 방법을 고민하던 선빈이는 같은 물건이 여러 칸에 나누어 들어있는 것을 발견하고 우선 같은 물건끼리 최대한 겹쳐쌓는 방식으로 창고를 정리하기로 했습니다. 선빈이의 창고에 들어있는 물건의 이름과 개수는 리스트 형태로 주어지며, 한 칸에 겹쳐질 수 있는 물건의 개수에는 제한이 없다고 가정합니다. 예를 들어 창고의 각 칸에 담겨있는 물건의 이름이storage = ["pencil", "pencil", "pencil", "book"], 각 물건의 개수가 num = [2, 4, 3, 1]이라면 연필과 책을 한 칸에..
2024.01.11
no image
프로그래머스/C++ [PCCE 기출문제] 7번 / 가습기
문제 설명 상우가 사용하는 가습기에는 "auto", "target", "minimum"의 세 가지 모드가 있습니다. 가습기의 가습량은 0~5단계로 구분되며 각 모드 별 동작 방식은 다음과 같습니다. "auto" 모드 습도가 0 이상 10 미만인 경우 : 5단계 습도가 10 이상 20 미만인 경우 : 4단계 습도가 20 이상 30 미만인 경우 : 3단계 습도가 30 이상 40 미만인 경우 : 2단계 습도가 40 이상 50 미만인 경우 : 1단계 습도가 50 이상인 경우 : 0단계 "target" 모드 습도가 설정값 미만일 경우 : 3단계 습도가 설정값 이상일 경우 : 1단계 "minimum"모드 습도가 설정값 미만일 경우 : 1단계 습도가 설정값 이상일 경우 : 0단계 상우가 설정한 가습기의 모드를 나타낸..
2024.01.11
no image
프로그래머스/C++ [PCCE 기출문제] 6번 / 가채점
문제 설명 A반 학생들은 시험이 끝난 뒤 성적이 나오기 전 자기 시험지를 가채점해 보았습니다. 이후에 선생님이 실제 성적을 불러 줄 때 가채점한 점수와 실제 성적이 다른 학생들이 있어 선생님께 문의를 하려고 합니다. 성적을 문의하려는 학생들의 번호가 담긴 정수 리스트 numbers와 가채점한 점수가 성적을 문의하려는 학생 순서대로 담긴 정수 리스트 our_score, 실제 성적이 번호 순서대로 담긴 정수 리스트 score_list가 주어집니다. 주어진 solution 함수는 가채점한 점수가 실제 성적과 동일하다면 "Same"을, 다르다면 "Different"를 순서대로 리스트에 담아 return하는 함수입니다. solution 함수가 올바르게 작동하도록 한 줄을 수정해 주세요. 제한사항 1 ≤ numbe..
2024.01.11
no image
프로그래머스/C++ [PCCE 기출문제] 5번 / 산책
문제 설명 여름이는 강아지를 산책시키려고 합니다. 여름이는 2차원 좌표평면에서 동/서/남/북 방향으로 1m 단위로 이동하면서 강아지를 산책시킵니다. 산책루트가 담긴 문자열 route가 주어질 때, 도착점의 위치를 return하도록 빈칸을 채워 solution함수를 완성해 주세요. route는 "N", "S", "E", "W"로 이루어져 있습니다. "N"은 북쪽으로 1만큼 움직입니다. "S"는 남쪽으로 1만큼 움직입니다. 북쪽으로 -1만큼 움직인 것과 같습니다. "E"는 동쪽으로 1만큼 움직입니다. "W"는 서쪽으로 1만큼 움직입니다. 동쪽으로 -1만큼 움직인 것과 같습니다. 출발점으로부터 [동쪽으로 떨어진 거리, 북쪽으로 떨어진 거리]형태로 강아지의 최종 위치를 구해서 return해야 합니다. 출발점을 ..
2024.01.11
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
반응형

자세한 설명은 유니티 머신러닝 깃 허브에 잘 나와있습니다!

https://github.com/Unity-Technologies/ml-agents/blob/develop/docs/Installation.md

유니티 머신러닝 깃허브 기준 설명서 -> docs -> Installation.md 로 들어가시면 됩니다!

 

현재 2024년 3월 기준으로 블로그를 작성하였고

다른 블로그를 참고하여도 계속 버전 문제가 커서 유니티 머신러닝 깃허브를 직접 참고하여 블로그를 새로 작성해봅니다!

 

일단 준비물은

https://github.com/Unity-Technologies/ml-agents

 

GitHub - Unity-Technologies/ml-agents: The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enab

The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enables games and simulations to serve as environments for training intelligent agents using deep reinforcement ...

github.com

링크로 들어가셔서 

 

초록색 Code 버튼을 눌러 다운로드를 해줍니다!

 

현재 날짜 기준으로

  • Unity(2023.2 이상) 설치
  • Python(3.10.12 이상) 설치

라고 설명서에 나와있으므로 유니티허브를 다운로드해주시고

유니티 2023,2버전 이상과 파이썬 3.10.12 이상버전을 설치해줍니다!

저는 

유니티 2023.2.13f1 버전과 파이썬 3.11 버전을 설치하였습니다!

 

그리고 머신러닝은 가상환경에서 실행해야하기때문에

https://docs.conda.io/projects/conda/en/stable/

Conda에 들어가셔서 다운로드를 해줍니다!

 

모두 다운로드가 완료되었다면

 

검색을 하셔서 Anaconda Prompt (miniconda3) 를 실행해줍니다!

 

 

이런식으로 기본 가상환경 창이 나오는데

아까 맨 처음에 다운받았던 유니티 ml-agents-develop 로 들어가셔서 경로를 설정해줍니다!

저는 2번째라 2라고 적었으니 신경쓰지마세요!

 

경로로 들어가는법

cd C:\Users\Jean\Desktop\ml-agents-develop2\ml-agents-develop

각자의 경로로 들어가시길 바랍니다! 저는 바탕화면에 놔둬서 경로가 이런식으로 됩니다!

Jean은 제 이름이고 Desktop은 보통 바탕화면 입니다.

이 파일의 경로로 설정해주세요!

 

conda create -n mlagents python=3.10.12 && conda activate mlagents

명령어를 사용하여 파이썬 버전을 맞춰주고 conda를 사용하여 mlagents를 사용하여 가상환경을 셋팅해줍니다!

이런식으로 파이썬 버전3.10.12와  mlagents로 가상환경의 기본셋팅이 되었습니다! 

 

더 많은 예제를 다운로드 하고싶으시다면

git clone --branch release_21 https://github.com/Unity-Technologies/ml-agents.git

이 명령어를 사용하시면 됩니다! 저는 사용하지 않겠습니다.

 

자 이제 PyTorch를 설치해야하는데요 윈도우라면

pip3 install torch~=2.2.1 --index-url https://download.pytorch.org/whl/cu121

 

OS라면 GRPC 라이브러리를 설치합니다

pip3 install grpcio

 

둘중 하나만 하시면 돼요! 각자 맞는 운영체제로 다운하시면 됩니다!

 

 

자 이제 파이썬 패키지를 설치해야 합니다

2개의 명령어를 한줄씩 실행해줍니다!

python -m pip install ./ml-agents-envs
python -m pip install ./ml-agents

 

 

밑의 명령어도 실행해줍니다!

python -m pip install mlagents==1.0.0

 

 

마지막으로 파이토치에 필요한것과 나머지 명령어도 실행해주시면 됩니다!

pip3 install torch -f https://download.pytorch.org/whl/torch_stable.html
pip3 install -e ./ml-agents-envs
pip3 install -e ./ml-agents

 

 

이제 셋팅은 끝났습니다!

 

유니티에서 디스크에서 프로젝트 추가를 누르신다음

아까 저희가 지정했던 경로에 Project 파일이 있습니다.

이 프로젝트 파일로 프로젝트 추가를 눌러주시면 됩니다!

 

 

프로젝트가 열리는걸 기다려주세요!

다음 페이지에서 예제 다루는법을 소개하겠습니다!

 

반응형
반응형

 

이번에 게임 졸업작품을 제작하기전 졸업작품 기획입니다!

 

 

 

이번에 기획을 해보면서 기획도 중요하다는걸 깨달았다

예전에 잠깐 방학에 기획없이 친구들과 작은 게임 프로젝트를 진행했는데 확실히 방향과 틀을 잡고 시작하는것과

그냥 맨땅에 헤딩하는것과는 다르다는걸 느꼈다

게임제작이 기획대로 흘러갈지 모르겠지만 열심히 해보자@@

 

https://youtu.be/_tI3N9Zm87A

프로토타입 1

https://youtu.be/BD2RX2lEqpI

프로토타입 2

 

https://youtu.be/bZN9wO0vHm4

최종 프로토타입

 

반응형
반응형

문제 설명

선빈이는 게임을 즐기던 중 가지고 있는 물건이 너무 많아 창고 정리를 하기로 했습니다. 선빈이가 보유한 게임 속 창고는 여러 칸으로 나누어져 있고 각 칸에는 물건들이 담겨있습니다. 창고를 정리할 방법을 고민하던 선빈이는 같은 물건이 여러 칸에 나누어 들어있는 것을 발견하고 우선 같은 물건끼리 최대한 겹쳐쌓는 방식으로 창고를 정리하기로 했습니다. 선빈이의 창고에 들어있는 물건의 이름과 개수는 리스트 형태로 주어지며, 한 칸에 겹쳐질 수 있는 물건의 개수에는 제한이 없다고 가정합니다.

예를 들어 창고의 각 칸에 담겨있는 물건의 이름이storage = ["pencil", "pencil", "pencil", "book"], 각 물건의 개수가 num = [2, 4, 3, 1]이라면 연필과 책을 한 칸에 각각 겹쳐 쌓아 간단하게 clean_storage = ["pencil", "book"], clean_num = [9, 1]로 만들 수 있습니다.

 

주어진 solution 함수는 정리되기 전 창고의 물건 이름이 담긴 문자열 리스트 storage와 각 물건의 개수가 담긴 정수 리스트 num이 주어질 때, 정리된 창고에서 개수가 가장 많은 물건의 이름을 return 하는 함수입니다. solution 함수가 올바르게 작동하도록 한 줄을 수정해 주세요.


제한사항

  • 1 ≤ storage의 길이 = num의 길이 ≤ 30
    • storage[i]는 영어 대소문자로 이루어져 있습니다.
    • 물건은 대소문자를 구분합니다. 즉, "Book"과 "book"은 서로 다른 물건입니다.
    • 1 ≤ storage[i]의 길이 ≤ 30
    • 1 ≤ num[i] ≤ 20
    • num[i]에는 storage[i]에 해당하는 물건의 개수가 담겨있습니다.
  • 가장 개수가 많은 물건이 두 가지 이상인 경우는 없습니다.
  • 한 칸에는 한 종류의 물건만 들어갈 수 있습니다.

입출력 예

storage num result

["pencil", "pencil", "pencil", "book"] [2, 4, 3, 1] "pencil"
["doll", "doll", "doll", "doll"] [1, 1, 1, 1] "doll"
["apple", "steel", "leaf", "apple", "leaf"] [5, 3, 5, 3, 7] "leaf"
["mirror", "net", "mirror", "net", "bottle"] [4, 1, 4, 1, 5] "mirror"

입출력 예 설명

입출력 예 #1

  • 본문에 설명된 대로 창고를 정리하면 clean_storage = ["pencil", "book"], clean_num = [9, 1]이 됩니다. 따라서 가장 개수가 많은 물건인 "pencil"을 return합니다.

입출력 예 #2

  • 창고를 정리하면 clean_storage = ["doll"], clean_num = [4]가 됩니다. 따라서 가장 개수가 많은 물건인 "doll"을 return합니다.

 

입출력 예 #3

  • 창고를 정리하면 clean_storage = ["apple", "steel", "leaf"], clean_num = [8, 3, 12]가 됩니다. 따라서 가장 개수가 많은 물건인 "leaf"를 return합니다.

 

입출력 예 #4

  • 창고를 정리하면 clean_storage = ["mirror", "net", "bottle"], clean_num = [8, 2, 5]가 됩니다. 따라서 가장 개수가 많은 물건인 "mirror"를 return합니다.

  • cpp를 응시하는 경우 리스트는 배열과 동일한 의미이니 풀이에 참고해주세요.
    • ex) 번호가 담긴 정수  numbers가 주어집니다. => 번호가 담긴 정수  numbers가 주어집니다.
  • java를 응시하는 경우 리스트는 배열, 함수는 메소드와 동일한 의미이니 풀이에 참고해주세요.
    • ex) solution 가 올바르게 작동하도록 한 줄을 수정해 주세요. => solution 가 올바르게 작동하도록 한 줄을 수정해 주세요.
#include <string>
#include <vector>

using namespace std;

string solution(vector<string> storage, vector<int> num) {
    int num_item = 0;
    vector<string> clean_storage(storage.size());
    vector<int> clean_num(num.size());
    
    for(int i=0; i<storage.size(); i++){
        int clean_idx = -1;
        for(int j=0; j<num_item; j++){
            if(storage[i] == clean_storage[j]){
                clean_idx = j;
                break;
            }
        }
        if(clean_idx == -1){
            clean_storage[num_item] = storage[i];
            clean_num[num_item] = num[i];
            num_item += 1;
        }
        else{
            clean_num[clean_idx] += num[i];
        }
    }
    
    // 아래 코드에는 틀린 부분이 없습니다.
    
    int num_max = -1;
    string answer = "";
    for(int i=0; i<num_item; i++){
        if(clean_num[i] > num_max){
            num_max = clean_num[i];
            answer = clean_storage[i];
        }
    }
    return answer;
}

 

반응형
반응형

문제 설명

상우가 사용하는 가습기에는 "auto", "target", "minimum"의 세 가지 모드가 있습니다. 가습기의 가습량은 0~5단계로 구분되며 각 모드 별 동작 방식은 다음과 같습니다.

  • "auto" 모드
    • 습도가 0 이상 10 미만인 경우 : 5단계
    • 습도가 10 이상 20 미만인 경우 : 4단계
    • 습도가 20 이상 30 미만인 경우 : 3단계
    • 습도가 30 이상 40 미만인 경우 : 2단계
    • 습도가 40 이상 50 미만인 경우 : 1단계
    • 습도가 50 이상인 경우 : 0단계
  • "target" 모드
    • 습도가 설정값 미만일 경우 : 3단계
    • 습도가 설정값 이상일 경우 : 1단계
  • "minimum"모드
    • 습도가 설정값 미만일 경우 : 1단계
    • 습도가 설정값 이상일 경우 : 0단계

상우가 설정한 가습기의 모드를 나타낸 문자열 mode_type, 현재 공기 중 습도를 나타낸 정수 humidity, 설정값을 나타낸 정수 val_set이 주어질 때 현재 가습기가 몇 단계로 작동 중인지 return하도록 빈칸을 채워 solution 함수를 완성해 주세요.


제한사항

  • mode_type은 "auto", "target", "minimum" 세 가지 중 하나의 값을 갖습니다.
  • 0 ≤ humidity, val_set ≤ 100

입출력 예

mode_type humidity val_set result

"auto" 23 45 3
"target" 41 40 1
"minimum" 10 34 1

입출력 예 설명

입출력 예 #1

  • "auto"모드이므로 습도에 따라 가습량이 조절됩니다. 현재 습도가 20 이상 30 미만이므로 3을 return합니다.

입출력 예 #2

  • "target"모드이고, 설정값보다 습도가 높으므로 1을 return합니다.

입출력 예 #3

  • "minimum"모드이고, 설정값보다 습도가 낮으므로 1을 return합니다.
#include <string>
#include <vector>

using namespace std;

int func1(int humidity, int val_set){
    if(humidity < val_set)
        return 
3
;
    return 1;
}

int func2(int humidity){
    if(humidity >= 50)
        return 0;
    else if (humidity >= 40)
        return 1;
    else if (humidity >= 30)
        return 2;
    else if (humidity >= 20)
        return 3;
    else if (humidity >= 10)
        return 4;
    
else

        
return 5
;
}

int func3(int humidity, int val_set){
    if(humidity < val_set)
        return 1;
    return 
0
;
}

int solution(string mode_type, int humidity, int val_set) {
    int answer = 0;
    if(mode_type == "auto"){
        answer = func
2(humidity)
;
    }
    else if(mode_type == "target"){
        answer = func
1(humidity, val_set)
;
    }
    else if(mode_type == "minimum"){
        answer = func
3(humidity, val_set)
;
    }
    return answer;
}

 

반응형
반응형

문제 설명

A반 학생들은 시험이 끝난 뒤 성적이 나오기 전 자기 시험지를 가채점해 보았습니다. 이후에 선생님이 실제 성적을 불러 줄 때 가채점한 점수와 실제 성적이 다른 학생들이 있어 선생님께 문의를 하려고 합니다.

성적을 문의하려는 학생들의 번호가 담긴 정수 리스트 numbers와 가채점한 점수가 성적을 문의하려는 학생 순서대로 담긴 정수 리스트 our_score, 실제 성적이 번호 순서대로 담긴 정수 리스트 score_list가 주어집니다. 주어진 solution 함수는 가채점한 점수가 실제 성적과 동일하다면 "Same"을, 다르다면 "Different"를 순서대로 리스트에 담아 return하는 함수입니다. solution 함수가 올바르게 작동하도록 한 줄을 수정해 주세요.


제한사항

  • 1 ≤ numbers의 길이 = our_score의 길이 ≤ 10
    • 1 ≤ numbers의 원소 ≤ 31
    • 0 ≤ our_score의 원소 ≤ 100
    • our_score[i]는 numbers[i]번 학생이 가채점한 점수입니다.
    • numbers는 중복된 원소를 가지지 않습니다.
  • 2 ≤ score_list의 길이 ≤ 31
    • 0 ≤ score_list의 원소 ≤ 100
    • score_list에는 실제 성적이 [1번 학생 성적, 2번 학생 성적, 3번 학생 성적 …] 순서로 들어있습니다.

입출력 예

numbers our_score score_list result

[1] [100] [100, 80, 90, 84, 20] ["Same"]
[3, 4] [85, 93] [85, 92, 38, 93, 48, 85, 92, 56] ["Different", "Same"]

입출력 예 설명

입출력 예 #1

  • 1번 학생이 가채점한 성적은 100점으로 실제 성적과 같기 때문에 "Same"을 담아 return합니다.

입출력 예 #2

  • 3번 학생이 가채점한 성적은 85점으로 실제 성적 38점과 다르기 때문에 "Different"를, 4번 학생이 채점한 성적은 93점으로 실제 성적과 같기 때문에 "Same"을 담아 return합니다.

  • cpp를 응시하는 경우 리스트는 배열과 동일한 의미이니 풀이에 참고해주세요.
    • ex) 번호가 담긴 정수  numbers가 주어집니다. => 번호가 담긴 정수  numbers가 주어집니다.배열
    • 리스트
  • java를 응시하는 경우 리스트는 배열, 함수는 메소드와 동일한 의미이니 풀이에 참고해주세요.
    • ex) solution 가 올바르게 작동하도록 한 줄을 수정해 주세요. => solution 가 올바르게 작동하도록 한 줄을 수정해 주세요.메소드
    • 함수
#include <string>
#include <vector>

using namespace std;

vector<string> solution(vector<int> numbers, vector<int> our_score, vector<int> score_list) {
    int num_student = numbers.size();
    vector<string> answer(num_student);
    
    for (int i = 0; i < num_student; i++) {
        if (our_score[i] == score_list[numbers[i]-1]) {
            answer[i] = "Same";
        }
        else {
            answer[i] = "Different";
        }
    }
    
    return answer;
}

 

반응형
반응형

문제 설명

여름이는 강아지를 산책시키려고 합니다. 여름이는 2차원 좌표평면에서 동/서/남/북 방향으로 1m 단위로 이동하면서 강아지를 산책시킵니다. 산책루트가 담긴 문자열 route가 주어질 때, 도착점의 위치를 return하도록 빈칸을 채워 solution함수를 완성해 주세요.

  • route는 "N", "S", "E", "W"로 이루어져 있습니다.
    • "N"은 북쪽으로 1만큼 움직입니다.
    • "S"는 남쪽으로 1만큼 움직입니다.
      • 북쪽으로 -1만큼 움직인 것과 같습니다.
    • "E"는 동쪽으로 1만큼 움직입니다.
    • "W"는 서쪽으로 1만큼 움직입니다.
      • 동쪽으로 -1만큼 움직인 것과 같습니다.
  • 출발점으로부터 [동쪽으로 떨어진 거리, 북쪽으로 떨어진 거리]형태로 강아지의 최종 위치를 구해서 return해야 합니다.
  • 출발점을 기준으로 서쪽, 남쪽에 있는 경우는 동쪽, 북쪽으로 음수만큼 떨어진 것으로 표현합니다.
    • 출발점으로부터 동쪽으로 2, 북쪽으로 3만큼 떨어졌다면 [2, 3]을 return 합니다.
    • 출발점으로부터 서쪽으로 1, 남쪽으로 4만큼 떨어졌다면 [-1, -4]를 return 합니다.

제한사항

  • 1 ≤ route의 길이 ≤ 20
  • route는 "N", "S", "E", "W"로만 이루어져 있습니다.

입출력 예

route result

"NSSNEWWN" [-1, 1]
"EESEEWNWSNWWNS" [0, 0]

입출력 예 설명

입출력 예 #1

  • "NSSNEWWN" 순서대로 움직이면 서쪽으로 1, 북쪽으로 1만큼 떨어진 곳에 도착하게 되므로 [-1, 1]을 return합니다.

입출력 예 #2

  • "EESEEWNWSNWWNS" 순서대로 움직이면 출발지와 같은 곳으로 돌아오므로 [0, 0]을 return합니다.

  • cpp를 응시하는 경우 리스트는 배열과 동일한 의미이니 풀이에 참고해주세요.
    • ex) 번호가 담긴 정수  numbers가 주어집니다. => 번호가 담긴 정수  numbers가 주어집니다.배열
    • 리스트
  • java를 응시하는 경우 리스트는 배열, 함수는 메소드와 동일한 의미이니 풀이에 참고해주세요.
    • ex) solution 가 올바르게 작동하도록 한 줄을 수정해 주세요. => solution 가 올바르게 작동하도록 한 줄을 수정해 주세요.메소드
    • 함수
#include <string>
#include <vector>

using namespace std;

vector<int> solution(string route) {
    int east = 0;
    int north = 0;
    vector<int> answer(2);
    for(int i=0; i<route.length(); i++){
        switch(route[i]){
            case 'N':
                north++;
                break;
            case 'S':
                
north--
;
                break;
            case 'E':
                
east++
;
                break;
            case 'W':
                
east--
;
                
break;
;
        }
    }
    answer[0] = east;
    answer[1] = north;
    return answer;
}

 

반응형
반응형

문제 설명

진우는 돈을 모으기 위해 저축을 하려고 합니다. 목표로 하는 금액은 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;
}

 

반응형