반응형
<처음 풀이>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
int main()
{
int min = 0;
int max = 0;
char a[8], b[8];
scanf("%s %s", &a, &b);
for (int i = 0; i < strlen(a); i++)
{
if (a[i] == 53 || a[i] == 54) // 5 또는 6일때
{
min += (5) * pow(10, strlen(a) - 1 - i);
max += (6) * pow(10, strlen(a) - 1 - i);
}
else
{
min += (a[i] - 48) * pow(10, strlen(a) - 1 - i);
max += (a[i] - 48) * pow(10, strlen(a) - 1 - i);
}
}
for (int i = 0; i < strlen(b); i++)
{
if (b[i] == 53 || b[i] == 54) // 5 또는 6일때
{
min += (5) * pow(10, strlen(b) - 1 - i);
max += (6) * pow(10, strlen(b) - 1 - i);
}
else
{
min += (b[i] - 48) * pow(10, strlen(b) - 1 - i);
max += (b[i] - 48) * pow(10, strlen(b) - 1 - i);
}
}
printf("%d %d", min, max);
}
<stoi(String To Int) 함수를 사용한 코드>
#include<stdio.h>
#include<string>
#include<cstring>
#include<algorithm>
#include<math.h>
using namespace std;
int min(char a[])
{
for (int i = 0; i < strlen(a); i++)
{
if (a[i] == '6') a[i] = '5';
}
return stoi(a);
}
int max(char a[])
{
for (int i = 0; i < strlen(a); i++)
{
if (a[i] == '5') a[i] = '56';
}
return stoi(a);
}
int main()
{
char a[8], b[8];
scanf("%s %s", &a, &b);
printf("%d %d", min(a)+min(b), max(a)+max(b));
}
<Python 코드>
a, b = map(int, input().split())
arr1 = []
arr2 = []
arr3 = [0, 0, 0, 0, 0, 0, 0]
min = 0
max = 0
for i in range(7):
arr1.append(a % 10)
a = int(a/10)
arr2.append(b % 10)
b = int(b/10)
arr1.reverse()
arr2.reverse()
for i in range(7):
if arr1[i] == 6:
arr1[i] = 5
if arr2[i] == 6:
arr2[i] = 5
for j in range(7):
arr3[j] = arr1[j] + arr2[j]
min += arr3[j]*10**(6 - j)
for i in range(7):
if arr1[i] == 5:
arr1[i] = 6
if arr2[i] == 5:
arr2[i] = 6
for j in range(7):
arr3[j] = arr1[j] + arr2[j]
max += arr3[j]*10**(6 - j)
print(min, max)
처음의 풀이는 두 수를 string으로 받아서
'5'의 경우 아스키코드값이 53,
'6'의 경우는 54이므로 min일 때는 5, max일 때는 6을 넣어주어 pow() 함수를 이용하여 정수로 바꿔주었다. 파이썬 풀이도 비슷한 맥락이다.
다른 분의 코드를 보다가 stoi()라는 함수를 처음 봐서 검색해봤는데 내가 했던 방식을 생략하고 String을 바로 int로 바꿔줄 수 있는 편리한 함수였다. C++11부터 string클래스를 정수 또는 실수로 변경해주는 stoi, stof, stol, stod라는 함수가 생겼고 #include <string>를 해주면 사용할 수 있다.
https://www.acmicpc.net/problem/2864
반응형
'🧩PS > 🥈Nomal' 카테고리의 다른 글
[C/C++] 백준 18429번 근손실(DFS) (0) | 2020.05.30 |
---|---|
[C/C++/Python] 백준 2596번 비밀편지 (0) | 2020.05.02 |
[C/C++/Python] 백준 15970번 화살표 그리기 (0) | 2020.04.24 |
[C/C++/Python] 백준 16769번 Mixing Milk (0) | 2020.04.24 |
[C/C++] 백준 1373번 2진수 8진수 (0) | 2020.04.13 |