알고리즘 공부
각 소요 시간이 15분 내외로 또 다른 공부할 거리가 없는 연습 문제들을 모아두었다.
휴대폰번호 가리기
string solution(string phone_number) {
string answer = "";
int cnt = 0;
for (int i = 0; i < answer.size(); i++) {
if (cnt < answer.size() - 4) {
answer.push_back((char)9);
} else {
answer.push_back(phone_number[i]);
}
cnt++;
}
return answer;
}
약수의 합 - 연습문제
int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
answer += i;
}
}
return answer;
}
콜라츠 추측 - 연습문제
num이 1인 경우도 있다.
int solution(int num) {
int answer = 0;
int cnt = 0;
if(num==1) return cnt;
while (cnt++) {
if (cnt <= 500) {
if (num % 2 == 0) {
num /= 2;
} else if (num % 2 == 1) {
num *= 3;
num += 1;
}
if(num==1) return cnt;
} else {
return -1;
}
}
}
자연수 뒤집어 배열로 만들기 - 연습문제
10으로 나눌때 나머지 넣고
그 나머지 빼고
또 10으로 나누기를 반복
string rnum = to_string(n); 이것도 가능
vector<int> solution(long long n) {
vector<int> answer;
while(n>0){
int tmp = n%10;
answer.push_back(tmp);
n-=(tmp);
n/=10;
}
return answer;
}