PS (C, C++)

[백준/C & C++] 15813 너의 이름은 몇 점이니?

최연재 2022. 9. 11. 04:23

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

 

15813번: 너의 이름은 몇 점이니?

소윤이는 성필이에게 단단히 화가 났다. 성필이가 자꾸 소윤이의 이름을 놀리는 것이다! 극대노한 소윤이는 이름에 대해 많은 검색을 하던 도중 "이름점수"라는 것을 발견하게 된다. 이름 점수

www.acmicpc.net

코드 (C)

#include <stdio.h>

int main()
{
	int n, result=0;
	scanf("%d", &n);
	char name[101];
	scanf("%s", &name);
	for (int i = 0; i < n; i++) result += (int)(name[i] - 64);

	printf("%d", result);
	return 0;
}

코드 (C++)

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
	string name;
	int result = 0, n;
	cin >> n;
	cin >> name;
	for (int i = 0; i < n; i++) result += (int)(name[i] - 64);
	cout << result;
	
	return 0;
}

코드설명 

이름들이 모두 대문자로 작성되었고, A가 1, Z가 26임을 고려해서 코드를 작성한다. 

이름의 길이를 입력받은 후 이름을 입력받는다.

이름의 길이만큼 반복문을 도는데, 이름 철자 하나하나 철자의 아스키코드에서 64를 뺀 값을 int로 타입 캐스팅 후 결과에 더해나간다. 

 

반복문을 끝낸 후 결과를 출력하고 프로그램을 종료한다. 

느낀 점

타입 캐스팅을 사용한 것은 철자의 값(숫자)이 더해나가는 그 순간에만 필요하기 때문이다. 아스키코드와 타입 캐스팅을 이용해 금방 풀었다. 

'PS (C, C++)' 카테고리의 다른 글

[백준/C & C++] 2577 숫자의 개수  (0) 2022.09.15
[백준/C & C++] 25305 커트라인  (0) 2022.09.15
[백준/C & C++] 5565 영수증  (0) 2022.09.07
[백준/C & C++] 2851 슈퍼마리오  (0) 2022.09.05
[백준/C & C++] 1259 펠린드롬수  (0) 2022.09.05