반응형
반응형
//#include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <numeric>
#define _CRT_SECURE_NO_WARNINGS
using namespace std;
int main()
{
string num1;
string large_str;
string small_str;
string num2;
long long numnum1;
long long largesum;
long long smallsum;
long long numnum2;
cin >> num1;
large_str = num1;
small_str = num1;
for (int i = 0; i < num1.size(); i++)
{
if (num1[i] == 6+'0')
{
small_str[i] = 5 + '0';
}
else if (num1[i] == 5 + '0')
{
large_str[i] = 6 + '0';
}
}
largesum = stoll(large_str);
smallsum = stoll(small_str);
cin >> num2;
large_str.clear();
small_str.clear();
large_str = num2;
small_str = num2;
for (int i = 0; i < num2.size(); i++)
{
if (num2[i] == 6 + '0')
{
small_str[i] = 5 + '0';
}
else if (num2[i] == 5 + '0')
{
large_str[i] = 6 + '0';
}
}
largesum += stoll(large_str);
smallsum += stoll(small_str);
cout << smallsum << " " << largesum << endl;
}
풀이 방법은 각 자리에 있는 수를 구별하기 위해 string 타입을 통해서 변수를 입력 받습니다.
for 문을 통해 각 자리수에 수가 5 인지 6 인지 확인하고
5 이면 large_str 에 값을 넣는데 이 때 5 를 6으로 변환 하고 넣습니다.
6 이면 small_str 에 값을 5로 변환 하고 넣습니다.
두 번째 입력값 num2 에도 같은 처리를 해 줍니다.
#include<cstdio>
2
#include<stdlib.h>
3
char a[10], b[10];
4
int main(){
5
scanf("%s %s", a, b);
6
for (int i = 0; a[i]; i++){
7
if (a[i] == '6')a[i] = '5';
8
}
9
for (int i = 0; b[i]; i++){
10
if (b[i] == '6')b[i] = '5';
11
}
12
printf("%d ", atoi(a) + atoi(b));
13
for (int i = 0; a[i]; i++){
14
if (a[i] == '5')a[i] = '6';
15
}
16
for (int i = 0; b[i]; i++){
17
if (b[i] == '5')b[i] = '6';
18
}
19
printf("%d", atoi(a) + atoi(b));
20
}
다른 사람의 코드입니다.https://www.acmicpc.net/source/3413726
로그인
www.acmicpc.net
방법은 같지만 for 문을 두 번씩 쓰면서 큰 수와 작은 수를 따로 구했습니다.
반응형
'알고리즘 > 그리디 알고리즘' 카테고리의 다른 글
[백준] 1449 - 수리공 항승 (0) | 2023.02.10 |
---|---|
[백준] 1049 - 기타줄 (0) | 2023.02.08 |
[백준] 1439 - 뒤집기 (0) | 2023.02.01 |
[벡준] 13365 - 주유소 (0) | 2023.01.30 |
[백준] 1789 - 수들의 합 (0) | 2023.01.25 |