문제 설명
- 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 solution 함수를 작성하는 문제
- 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴
- a와 b가 같은 경우는 둘 중 아무 수나 리턴
해결 방법
a가 b보다 클 경우, 같을 경우, 작을 경우 분기를 나눠서 둘 사이의 모든 정수를 더했다
💻소스코드
#include <string>
#include <vector>
using namespace std;
long long solution(int a, int b) {
long long answer = 0;
if (a == b)
answer = a;
else if (a > b){
for(int i = b; i <= a; i++)
answer += i;
}
else if (a < b){
for(int i = a; i <= b; i++)
answer += i;
}
return answer;
}
문제 설명
평균 구하기
💻소스코드
#include <string>
#include <vector>
using namespace std;
double solution(vector<int> arr) {
double answer = 0;
double sum = 0;
for (int i = 0; i < arr.size(); i++)
sum += arr[i];
answer = sum / arr.size();
return answer;
}
def solution(arr):
return sum(arr) / len(arr)
문제 설명
- 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수를 작성하는 문제
해결 방법
num을 2로 나눴을 때 나머지가 0이면 짝수이고, 1이면 홀수이다.
💻소스코드
#include <string>
#include <vector>
using namespace std;
string solution(int num) {
string answer = "";
if (num % 2 == 0)
answer = "Even";
else
answer = "Odd";
return answer;
}
문제 설명
- 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다.
- 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
- x는 -10000000 이상, 10000000 이하인 정수입니다.
- n은 1000 이하인 자연수입니다.
해결 방법
answer 객체에 x부터 x만큼 증가하는 n개의 수를 push_back() 멤버함수를 사용해서 넣어준다
💻소스코드
#include <string>
#include <vector>
using namespace std;
vector<long long> solution(int x, int n) {
vector<long long> answer;
int inc = x;
for(int i = 0; i < n; i++){
answer.push_back(x);
x += inc;
}
return answer;
}
문제 설명
- 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
- n은 0 이상 3000이하인 정수입니다.
해결 방법
나눴을 때 나머지가 0이 되는 수를 모두 더한다. (1과 n 포함)
💻소스코드
#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 += i;
return answer;
}
문제 설명
- 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
- 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한사항
- N의 범위 : 100,000,000 이하의 자연수
해결 방법
n을 10으로 나눈 나머지를 더하고, 10으로 나눠주는 과정을 반복한다.
그러면 각 n의 각 자릿수의 합을 구할 수 있다.
💻소스코드
#include <iostream>
using namespace std;
int solution(int n)
{
int answer = 0;
while (n > 0){
answer += n % 10;
n /= 10;
}
return answer;
}
문제 설명
자연수 뒤집어 배열로 만들기
해결 방법
자연수 n을 일의 자리수부터 차례대로 최고 자리수까지push_back()
하게 되면 자동으로 뒤집어진 배열이 완성된다.
n을 10으로 나눈 나머지를 push_back 해준 다음, n을 10으로 나누는 과정을 n이 0이 될때까지 반복한다.
💻소스코드
#include <string>
#include <vector>
using namespace std;
vector<int> solution(long long n) {
vector<int> answer;
while (n > 0){
answer.push_back(n % 10);
n /= 10;
}
return answer;
}