알고리즘 문제
[백준] 6679번 싱기한 네자리 숫자
feelcoding
2020. 2. 10. 18:23
728x90
https://www.acmicpc.net/problem/6679
6679번: 싱기한 네자리 숫자
문제 싱기한 네자리 숫자란, [1000,9999]인 10진수 숫자중에서, 다음의 조건을 만족하는 숫자를 말한다. 숫자를 10진수, 12진수, 16진수로 나타낸 다음, 각각의 숫자에 대해, 각 숫자의 자리수를 더했을 때, 세 값이 모두 같아야 한다. 여러분은 싱기한 네자리 숫자를 모두 출력해야 한다. 입력 입력은 주어지지 않는다. 출력 싱기한 네자리 숫자를 오름차순으로 한줄에 하나씩 출력한다. 예제 입력 1 복사 예제 출력 1 복사 2992 2993 29
www.acmicpc.net
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
for (int i = 1000; i < 10000; i++) {
vector<int> binary;
vector<int> hexadecimal;
vector<int> decimal;
int n = i;
while (n != 0) {
binary.push_back(n % 12);
n /= 12;
}
n = i;
while (n != 0) {
int a = n % 16;
hexadecimal.push_back(a);
n /= 16;
}
n = i;
while (n != 0) {
decimal.push_back(n % 10);
n /= 10;
}
int hexadecimalSum = 0;
int decimalSum = 0;
int binarySum = 0;
for (int num : decimal)
decimalSum += num;
for (int num : hexadecimal) {
hexadecimalSum += num;
}
for (int num : binary)
binarySum += num;
if (binarySum == decimalSum && decimalSum == hexadecimalSum)
cout << i << '\n';
}
return 0;
}
정말 오늘따라 더 느끼는 문제 똑바로 읽기의 중요성.
2진수인줄 알고 2진수, 10진수 16진수로 했는데 답이 안 나와서 이걸가지고 한 시간을 헤맸다. 그런데 12진수였다.
문제를 똑바로 읽자
728x90