알고리즘/그리디 알고리즘

[백준] 2863 - 5 와 6의 차이

TIM_0529 2023. 2. 5. 15:54
반응형
반응형
//#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