본문 바로가기
PS/BOJ

[PS] 백준 10824번 - 네 수 | C++

by spareone 2022. 10. 28.

백준 10824번 문제 write-up입니다.

https://www.acmicpc.net/problem/10824

 

10824번: 네 수

첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000)

www.acmicpc.net


A, B를 붙인 수와 C, D를 붙인 수를 더하면 됩니다.

두 숫자를 붙인다는 것은 A = 10, B = 20일 때, 1020이 되는 것입니다.

 

A B를 붙인다고 하면, B의 자릿수를 먼저 구해야 합니다.

이후 자릿수를 하나 추가해 A에 곱하고 B를 더하면 됩니다.

 

문제 조건을 보면, 자연수 범위가 1,000,000까지입니다.

자연수 4개 모두 최댓값으로 입력받으면 int 범위를 벗어나기 때문에 long long을 써야 합니다.


#include <iostream>
using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	
	long long n[4];    // a, b, c, d
	long long sum[2];  // a + b, c + d
	
	for(int i = 0; i < 4; i++) cin >> n[i];
	
	for(int i = 1; i < 4; i += 2) {
		long long digit = 10;
		long long temp = n[i];
		while(temp / 10 > 0) {
			digit *= 10;
			temp /= 10;
		}
		sum[i / 3] = n[i - 1] * digit + n[i];
	}
	cout << sum[0] + sum[1] << '\n';
}

댓글