Ex) Level0 - 몫 구하기
<hide/>
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int num1, int num2) {
int answer = num1 / num2;
return answer;
}
Ex) Level0 - 두 수의 곱
<hide/>
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int num1, int num2) {
int answer = num1 * num2;
return answer;
}
Ex) Level0 - 두 수의 차
<hide/>
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int num1, int num2) {
int answer = num1 - num2;
return answer;
}
Ex) Level0 - 나머지 구하기
<hide/>
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int num1, int num2) {
int answer = num1 % num2;
return answer;
}
Ex) Level0 - 두 수의 합
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(int num1, int num2) {
int answer = num1 + num2;
return answer;
}
Ex) Level0 - 나이 출력
몇 년생인지 알 수 있음. 1900 + ((기준년도-1900+1) - 나이)
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(int age) {
int iCurrentYear = 2022 - 1900 + 1;
int answer = 1900 + (iCurrentYear - age);
return answer;
}
Ex) Level0 - 숫자 비교하기
<hide/>
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int num1, int num2) {
if (num1 == num2)
{
return 1;
}
else
{
return -1;
}
}
Ex) Level0 - 각도기
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(int angle) {
int answer = 0;
if (0 < angle && angle < 90)
{
answer = 1;
}
else if (90 == angle)
{
answer = 2;
}
else if (90 < angle && angle < 180)
{
answer = 3;
}
else if (180 == angle)
{
answer = 4;
}
return answer;
}
Ex) Level0 - 두 수의 나눗셈
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(int num1, int num2) {
int answer = ((float)num1 / num2) * 1000;
return answer;
}
Ex) Level0 - 배열의 평균값
<hide/>
#include <string>
#include <vector>
using namespace std;
double solution(vector<int> numbers) {
double answer = 0;
int iSum = 0;
size_t uSize = numbers.size();
for (size_t i = 0; i < uSize; ++i)
{
iSum += numbers.at(i);
}
answer = (double)(iSum) / uSize;
return answer;
}
Ex) Level0 - 짝수의 합
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
for (int i = n; i >= 1; --i)
{
if (i % 2 == 0)
{
answer += i;
}
}
return answer;
}
Ex) Level0 - 머쓱이보다 키 큰 사람
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> array, int height) {
int answer = 0;
size_t uSize = array.size();
for (size_t i = 0; i < uSize; ++i)
{
if (height < array[i])
{
++answer;
}
}
return answer;
}
Ex) Level0 - 양꼬치
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(int n, int k) {
int answer = 0;
answer = 12000 * n + 2000 * k;
answer -= 2000 * (n / 10);
return answer;
}
Ex) Level0 - 중복된 숫자 개수
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> array, int n) {
int answer = 0;
size_t uSize = array.size();
for (size_t i = 0; i < uSize; ++i)
{
if (array.at(i) == n)
{
++answer;
}
}
return answer;
}
Ex) Level0 - 배열 뒤집기
감소 연산자 --를 쓸 때, size_t 자료형을 사용에 주의하자.
<hide/>
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> num_list) {
vector<int> answer;
size_t uSizeOfNumList = num_list.size();
answer.resize(uSizeOfNumList);
int j = 0;
for (int i = uSizeOfNumList-1; i >= 0; --i)
{
answer[j] = num_list[i];
++j;
}
return answer;
}
Ex) Level0 - 배열 두 배 만들기
<hide/>
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> numbers) {
vector<int> answer;
size_t uSizeOfNumbers = numbers.size();
answer.resize(uSizeOfNumbers);
for (int i = 0; i < uSizeOfNumbers; ++i)
{
answer.at(i) = numbers.at(i) * 2;
}
return answer;
}
Ex) Level0 - 짝수 홀수 개수
<hide/>
#include <string>
#include <vector>
using namespace std;
#define EVEN_AND_ODD (2)
vector<int> solution(vector<int> num_list) {
vector<int> answer;
answer.resize(EVEN_AND_ODD);
size_t uSizeOfNumList = num_list.size();
for (size_t i = 0; i < uSizeOfNumList; ++i)
{
if (num_list.at(i) % 2 == 0)
{
++answer.at(0);
}
else
{
++answer.at(1);
}
}
return answer;
}
Ex) Level0 - 피자 나눠 먹기
ceil(), floor(), round() 함수는 tgmath.h에 정의되어 있음.
<hide/>
#include <string>
#include <vector>
#include <tgmath.h>
using namespace std;
#define PIECE_COUNT (7)
int solution(int n) {
int answer = 0;
answer = ceil((double)n / PIECE_COUNT);
return answer;
}
Ex) Level0 - 점의 위치 구하기
<hide/>
#include <string>
#include <vector>
using namespace std;
#define X (0)
#define Y (1)
int solution(vector<int> dot) {
int answer = 0;
if (0 < dot.at(X))
{
if (0 < dot.at(Y))
{
answer = 1;
}
else
{
answer = 4;
}
}
else
{
if (0 < dot.at(Y))
{
answer = 2;
}
else
{
answer = 3;
}
}
return answer;
}
Ex) Level0 - 문자열 뒤집기
<hide/>
#include <string>
#include <vector>
using namespace std;
string solution(string my_string) {
string answer = "";
int iSize = my_string.size();
for (int i = iSize-1; i >= 0; --i)
{
answer += my_string.at(i);
}
return answer;
}
Ex) Level0 - 피자 나눠 먹기
<hide/>
#include <string>
#include <vector>
#include <tgmath.h>
using namespace std;
int solution(int slice, int n) {
int answer = ceil((double)n / slice);
return answer;
}
Ex) Level0 - 배열 원소의 길이
<hide/>
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<string> strlist) {
vector<int> answer;
size_t uSizeOfStrList = strlist.size();
answer.resize(uSizeOfStrList);
for (size_t i = 0; i < uSizeOfStrList; ++i)
{
answer.at(i) = strlist.at(i).size();
}
return answer;
}
Ex) Level0 - 아이스 아메리카노
<hide/>
#include <string>
#include <vector>
using namespace std;
#define PRICE_OF_AMERICANO (5500)
#define ANSWER_SIZE (2)
#define AMERICANO_COUNT (0)
#define CHANGE (1)
vector<int> solution(int money) {
vector<int> answer;
answer.resize(ANSWER_SIZE);
answer.at(AMERICANO_COUNT) = money / PRICE_OF_AMERICANO;
answer.at(CHANGE) = money % PRICE_OF_AMERICANO;
return answer;
}
Ex) Level0 - 편지
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(string message) {
int answer = message.size() * 2;
return answer;
}
Ex) Level0 - 배열 자르기
문제를 꼼꼼히 읽도록 하자. index 착오..
<hide/>
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> numbers, int num1, int num2) {
vector<int> answer;
answer.resize(num2 - num1 + 1);
size_t count = 0;
for (size_t i = num1; i <= num2; ++i)
{
answer.at(count++) = numbers.at(i);
}
return answer;
}
Ex) Level0 - 특정 문자 제거하기
<hide/>
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, string letter) {
string answer = "";
size_t uSizeOfMyString = my_string.size();
for (size_t i = 0; i < uSizeOfMyString; ++i)
{
if (my_string.at(i) == letter.at(0))
{
continue;
}
else
{
answer += my_string.at(i);
}
}
return answer;
}
Ex) Level0 - 삼각형의 완성조건 (1)
<hide/>
#include <string>
#include <vector>
using namespace std;
#define TRIANGLE (3)
int solution(vector<int> sides) {
int answer = 0;
int iSum = 0;
int iMax = 0;
for (size_t i = 0; i < TRIANGLE; ++i)
{
if (iMax < sides.at(i))
{
iMax = sides.at(i);
}
iSum += sides.at(i);
}
if (iSum - iMax <= iMax)
{
answer = 2;
}
else
{
answer = 1;
}
return answer;
}
Ex) Level0 - 최댓값 만들기(1)
방심했음. 하나의 배열 안에서 가장 큰 1위 다음으로 큰 2위 값 찾기..
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> numbers) {
int answer = 0;
int iMax1 = 0;
int iMax2 = 0;
size_t uSizeOfNumbers = numbers.size();
for (size_t i = 0; i < uSizeOfNumbers; ++i)
{
if (iMax2 < numbers.at(i))
{
iMax2 = numbers.at(i);
if (iMax1 < numbers.at(i))
{
iMax2 = iMax1;
iMax1 = numbers.at(i);
}
}
}
answer = iMax1 * iMax2;
return answer;
}
Ex) Level0 - 문자 반복 출력하기
반복 횟수가 그리 많지 않아서 이중 반복문을 채택.
실제 코테에서 반복 횟수가 많아진다면?.. 일단 이중 반복문으로 풀고, 나중에 최적화!
<hide/>
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, int n) {
string answer = "";
size_t uSizeOfMyString = my_string.size();
for (size_t i = 0; i < uSizeOfMyString; ++i)
{
for (size_t j = 0; j < n; ++j)
{
answer += my_string.at(i);
}
}
return answer;
}
Ex) Level0 - 짝수는 싫어요
<hide/>
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int n) {
vector<int> answer;
for (int i = 1; i <= n; ++i)
{
if (i % 2 == 1)
{
answer.push_back(i);
}
}
return answer;
}
Ex) Level0 - 배열의 유사도
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(vector<string> s1, vector<string> s2) {
int answer = 0;
size_t uSizeOfS1 = s1.size();
size_t uSizeOfS2 = s2.size();
for (size_t i = 0; i < uSizeOfS1; ++i)
{
for (size_t j = 0; j < uSizeOfS2; ++j)
{
if (s1.at(i) == s2.at(j))
{
++answer;
}
}
}
return answer;
}
Ex) Level0 - 옷가게 할인 받기 [X]
floor() 함수를 사용해서 버림을 취했으나, 오히려 점수가 떨어짐. 다시 체크해봐야할듯.
<hide/>
#include <string>
#include <vector>
#include <tgmath.h>
using namespace std;
int solution(int price) {
int answer = 0;
int iDiscount = 0;
if (300000 <= price)
{
iDiscount = 20;
}
else if (200000 <= price)
{
iDiscount = 10;
}
else if (100000 <= price)
{
iDiscount = 5;
}
answer = price - (price * (iDiscount / 100.f));
return answer;
}
Ex) Level0 - 중앙값 구하기
퀵소트 적용 가능. sort() 함수 사용법 알아두기.
<hide/>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> array) {
int answer = 0;
size_t uSizeOfArray = array.size();
sort(array.begin(), array.end());
answer = array.at(uSizeOfArray / 2u);
return answer;
}
Ex) Level0 - 순서쌍의 개수
i 제곱 알고리으로 빠르게 구할 순 있을 듯.
<hide/>
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; ++i)
{
if (n % i == 0)
{
++answer;
}
}
return answer;
}
Ex) Level0 - 문자열안에 문자열
댓글