[내일배움캠프 - 사전캠프]
11. 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
제한사항
- num은 int 범위의 정수입니다.
- 0은 짝수입니다.
입출력 예
num1 | return |
3 | "Odd" |
4 | "Even" |
Solution
#include <string>
#include <vector>
using namespace std;
string solution(int num) {
string answer = "";
if(num%2==0){
answer="Even" ;
}
else answer="Odd";
return answer;
}
추가 설명
num을 2로 나누었을때 나머지가 0일 경우 짝수이므로 이를 이용해서 짝수인지 홀수인지 구분할 수 있음.
12. 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
제한사항
-
- arr은 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
입출력 예
arr | return |
[1,2,3,4] | 2.5 |
[5.5] | 5 |
Solution
#include <string>
#include <vector>
using namespace std;
double solution(vector<int> arr) {
double answer = 0;
for(int i=0;i<arr.size();i++){
answer+=arr[i];
}
return answer/arr.size();
}
추가 설명
answer에 arr의 원소값들을 모두 더하고 그걸 arr.size() (원소의 총 갯수)로 나눠서 리턴
13. 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한사항
- N의 범위 : 100,000,000 이하의 자연수
입출력 예
N | answer |
123 | 6 |
987 | 24 |
입출력 예 설명
#1
- 문제의 예시와 같습니다.
#2
- 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
Solution
#include <iostream>
using namespace std;
int solution(int n)
{
int answer = 0;
while(n > 0){
answer += n%10;
n/=10;
}
return answer;
}
추가 설명
n을 10으로 나누었을때 나머지인 맨 마지막 자릿수를 answer에 더한다. 이후 n/=10을 통해 맨 마지막 자릿수를 잘라내고 반복하여 끝자리부터 차근차근 더해간다.
14. 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한사항
- n은 0 이상 3000이하인 정수입니다.
입출력 예
n | return |
12 | 28 |
5 | 6 |
입출력 예 설명
#1
- 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
#2
- 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
Solution
#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;
}
추가 설명
i를 0부터 n까지 더해가면서 나누었을때 나누어 떨어지는지 확인한다. 나누어 떨어지면 그때 i는 n의 약수이므로 answer에 더해준다.
15. 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
제한사항
- 3 ≤ n ≤ 1,000,000
입출력 예
n | return |
10 | 3 |
12 | 11 |
입출력 예 설명
#1
- 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.
#2
- 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.
Solution
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
for(int i=1 ; i<n ; i++){
if(n%i==1){
return i;
}
}
}
추가 설명
'내일배움캠프🔥 > 알고리즘 코드카타💬' 카테고리의 다른 글
[ 내일배움캠프 ] 알고리즘 코드 카타 6~10 💬 (0) | 2024.12.15 |
---|---|
[ 내일배움캠프 ] 알고리즘 코드 카타 1~5 💬 (0) | 2024.12.12 |