[백준 BOJ] 11720번 숫자의 합 (C언어)

2022. 2. 13. 18:59PS (Program Solving)/BOJ (백준)

문제 설명

https://www.acmicpc.net/problem/11720

 

11720번: 숫자의 합

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

www.acmicpc.net

백준 BOJ 11720번 숫자의 합 문제 사진

 

접근 방법 - 문자열과 아스키코드를 이용한 수학 문제

백준의 11720번 문제는 문자열과 아스키코드를 이용하여 해결해야 하는 수학 문제이다.

해당 문제는, 공백 없이 입력받은 숫자들에 대한 덧셈 결과를 출력해야 하는 문제이다.

여기서, 해당 문제의 입력값들 사이에는 공백이 없기 때문에 정수형보단 문자형으로 입력받는 것이 더 좋다.

그렇기 때문에 한 문자씩 입력을 받고 각 문자의 아스키코드 값을 이용해 덧셈 연산을 취해 해답을 구하면 된다.

참고로, 0~9의 아스키코드 값은 48~57이다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 입력받기 위한 문자형 배열(arr)을 전역 변수로 선언하고, 정답을 저장할 sum을 0으로 초기화하며 선언한다.

 

2) 입력받을 숫자의 개수(n)를 입력받는다.

 

3) n에 따라, 숫자들을 문자형으로 입력받는다. 그리고 아래의 연산을 취한다.

- 입력받은 문자형 숫자의 아스키코드 값에 48을 뺀다

- 위의 결괏값을 sum에 더한다.

 

4) 모든 연산이 끝났다면, 최종적으로 저장된 sum을 출력한 뒤 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>

//백준 11720번 코드
char arr[100];
int main() {
	int n;
	int sum = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf(" %c", &arr[i]);
		sum += arr[i] - 48;
	}
	printf("%d", sum);
}

 

제출 결과

백준 BOJ 11720번 숫자의 합 문제 C 제출 결과

(2021.12.17 백준 11720번 문제 제출 결과)

반응형