티스토리 뷰
# 출처 : https://www.acmicpc.net/problem/6679
처음 내 풀이는 어떤 함수에서 입력으로 들어온 수를 특정 진법으로 변환하고 그 후 리턴하는 함수,
리턴받은 수를 자릿수별로 합치는 함수,
그리고 최종 결과를 비교하는 함수 총 3가지로 구성하여 풀었으나 풀고보니 풀이가 쓰레기였다.
그럴 필요없이 진법 변환의 원리 그러니깐 해당 진법의 수로 나눈 나머지끼리의 합을 이용하면 굳이 string을 쓰거나 하지 않아도 풀 수 있었다..
# 풀이
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <iostream> #include <algorithm> using namespace std; int calc(int num, int base) { int ret = 0; while (num) ret += num % base, num /= base; return ret; } int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); for (int i = 1000; i < 10000; ++i) { int dec = calc(i, 10); if (dec == calc(i, 12) && dec == calc(i, 16)) cout << i << '\n'; } return 0; } | cs |
'ALGORITHM' 카테고리의 다른 글
백준 / 11723번 / 집합 / C++ (0) | 2019.02.15 |
---|---|
백준 / 14502번 / 연구소 / C++ (0) | 2019.02.02 |
백준 / 2193번 / 이친수 / C++ (0) | 2019.01.29 |
백준 / 11726번 / 2×n 타일링 / C++ (0) | 2019.01.29 |
백준 / 1920번 / 수 찾기 / C++ (0) | 2019.01.28 |
댓글