![[BOJ] 백준_10824번_네 수 / C언어](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fcmo5JH%2FbtrdSc8Hzi9%2FAAAAAAAAAAAAAAAAAAAAAEhE7wKoVxKj5-y0UOSIpE561YHs4wXbsYRSWxmvf4BG%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DAmMwqlawN0Ef3IDts0%252BStJhiHQ0%253D)
[BOJ] 백준_10824번_네 수 / C언어백준 알고리즘2021. 9. 3. 10:07
목차
문제 출처
https://www.acmicpc.net/problem/10824
10824번: 네 수
첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000)
www.acmicpc.net
코드
//[BOJ] 10824번_네 수
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 1000000
#define MIN 1
int main()
{
char cha[MAX + 1];
char chb[MAX + 1];
char chc[MAX + 1];
char chd[MAX + 1];
int a,b,c,d;
scanf("%d %d %d %d", &a, &b, &c, &d);
if (a < MIN || a >MAX || b < MIN || b >MAX || c < MIN || c >MAX || d < MIN || d >MAX) {
printf("자연수 범위 벗어남\n");
exit(1);
}
sprintf(cha, "%d", a);
sprintf(chb, "%d", b);
sprintf(chc, "%d", c);
sprintf(chd, "%d", d);
strcat(cha, chb);
strcat(chc, chd);
long long A = atoi(cha);
long long B = atoi(chc);
printf("%lld\n", atoll(cha) + atoll(chc));
return 0;
}
처음 문제만 봤을 때는 간단해 보이는 내용이었는데 뭔가 잘 익숙하게 다뤄보지 않은 atoi, atoll 같은 라이브러리 함수가 나와서 많이 헤맸다. 정수 = int라는 인식이 너무 강하게 박혀있었다. 형태는 이미 완성돼 있었는데 1,000,000까지라는 범위와 long long 자료형을 생각 못하고 계속 다시 작성하면서 코드 길이가 늘었다. 이 문제에서 제일 중요한 부분은 자료형의 변환이 아니라 정수형의 범위(1부터 1,000,000)를 잘 지켜 작성하는 것이라고 생각했다. 코드 작성을 마쳤을 때는 코드가 너무 복잡하게 작성된 듯 싶었다.
728x90
반응형
'백준 알고리즘' 카테고리의 다른 글
[BOJ] 백준_2743번_단어 길이 재기 / C++ (0) | 2021.09.06 |
---|---|
[BOJ] 백준_11655번_ROT13 / C언어, C++ (0) | 2021.09.06 |
[BOJ] 백준_10809번_알파벳 찾기 / C언어 (0) | 2021.09.02 |
[BOJ] 백준_1934번_최소공배수 / C언어 (0) | 2021.09.01 |
[BOJ] 백준_10430번_나머지 (0) | 2021.09.01 |
@kdj :: Childev'note
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!