목록코딩테스트 (73)
bdfgdfg
#include #include using namespace std; vector solution(int n, int m) { vector answer; int a,b; if(n > m) swap(n,m); for(int i = 1; i 이것도 글을 수정하면서 조금씩 수정한 것 검색을 해보니 최대공약수를 구하는 알고리즘중 가장 빠른 유클리드 호제법이 존재. 여기서 깨달은 점은 최대공약수만 알면 최소공배수를 쉽게 구할 수 있다. 여기에다가 주어진 두 수를 곱하고 최대공약수로 나누면 그것이 최소 공배수. 위를 깨닫고 다시 코드를 다듬었을때. #include #include using namespace std; vector solution(int n, int m) { vector answer; int a,b;..
#include #include using namespace std; int solution(int num) { int answer = 0; long long num2 = num; while(true) { if(num2 == 1) break; if(num2 % 2 == 0) num2 /= 2; else num2 = num2 * 3 + 1; ++answer; if(answer >= 500) return answer = -1; } return answer; } int형 범위를 넘어서는 가능성을 생각하자
#include #include using namespace std; bool solution(int x) { bool answer = true; int harshadNum = 0,temp = x; while(temp > 0) { harshadNum += temp % 10; temp /= 10; } if(x % harshadNum != 0) answer = false; return answer; }