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

'알고리즘 문제' 카테고리의 다른 글

[백준] 6321번 IBM 빼기 1  (0) 2020.02.10
[백준] 6378번 디지털 루트  (0) 2020.02.10
[백준] 2845번 파티가 끝나고 난 뒤  (0) 2020.02.10
[백준] 9012번 괄호  (0) 2020.02.10
[백준] 2252번 줄 세우기  (0) 2020.02.10

+ Recent posts