😇
Q. 주어진 배열에서 3개의 숫자 조합을 찾는다고 가정해보자.
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr = {1, 2, 3, 4, 5};
int n = arr.size();
//아마 위 배열은 크기가 주어지고 입력받는 형식이겠다.
//아래처럼 모든 3개의 숫자 조합을 직접 찾는다.
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
for (int k = j + 1; k < n; k++) {
cout << arr[i] << ", " << arr[j] << ", " << arr[k] << endl;
}
}
}
return 0;
}
Q. 주어진 배열에서 최대값을 찾는다.
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr = {5, 3, 8, 1, 10};
int maxValue = arr[0];
for (int i = 1; i < arr.size(); i++) {
if (arr[i] > maxValue) {
maxValue = arr[i];
}
}
cout << "최대값: " << maxValue << endl;
return 0;
}
문제를 풀어보자
로직은 아주 간단하다.
1부터 10,000까지의 숫자를 돌면서, 그 숫자가 "셀프넘버"인지 확인하고, 맞다면 출력하는 방식으로 구현했다.
//
// main.cpp
// 4673
//
// Created by Maddie on 2023/10/31.
//
/*
d(n) = n + n각 자리수 -> 이게 안되는게 셀프 넘버
*/
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int selfNumber[10000];
int sumEachNumber(int n){//1234
int sum = 0;
while(n > 0){
sum += n % 10;
n/= 10;
}
return sum;
}
bool checkIsSelfNumber(int n){
for(int i=0;i<n;i++){
if(i + sumEachNumber(i) == n){
return false;
}
}
return true;
}
int main(){
for(int i=1;i<10000;i++){
if(checkIsSelfNumber(i)){
cout << i << "\n";
}
}
return 0;
}