[백준 9773] ID Key (C#, C++) - soo:bak
작성일 :
문제 링크
설명
13자리 숫자가 주어질 때, 특정 규칙에 따라 4자리 ID Key를 생성하는 문제입니다.
모든 자릿수의 합과 하위 3자리에 10을 곱한 값을 더합니다. 결과가 1000 미만이면 1000을 더하고, 마지막 4자리만 출력합니다.
접근법
먼저 문자열로 읽어 각 자릿수의 합을 구합니다. 이후 하위 3자리를 추출하여 10을 곱한 값을 더합니다. 1000 미만이면 1000을 더한 후, 결과를 문자열로 변환하여 마지막 4자리를 출력합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System;
class Program {
static void Main() {
var n = int.Parse(Console.ReadLine()!);
for (var i = 0; i < n; i++) {
var id = Console.ReadLine()!;
var sum = 0;
foreach (var c in id) sum += c - '0';
var last3 = int.Parse(id.Substring(10, 3)) * 10;
var result = sum + last3;
if (result < 1000)
result += 1000;
var idKey = result.ToString();
idKey = idKey.Substring(idKey.Length - 4, 4);
Console.WriteLine(idKey);
}
}
}
C++
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
26
27
28
29
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n; cin >> n;
for (int i = 0; i < n; i++) {
string id; cin >> id;
int sum = 0;
for (char c : id)
sum += (c - '0');
int last3 = stoi(id.substr(10, 3)) * 10;
int result = sum + last3;
if (result < 1000)
result += 1000;
string idKey = to_string(result);
idKey = idKey.substr(idKey.length() - 4, 4);
cout << idKey << "\n";
}
return 0;
}