본문 바로가기

문제풀이/C 문제풀이

5622

5622

5622번 문제
#include 

int main(void) {
	int abc[26] = { 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10 }; 
	// 인덱스 : 알파벳, 값 : 걸리는 시간
	int c, s = 0; // c : 입력 받을 문자 s : 합계를 받을 변수

	while ((c = getchar()) != '\n') // 문자 하나를 입력 받기
		s += abc[c - 65]; // 받은 문자에 해당하는 시간을 합계에 추가함

	printf("%d", s);
}

결과

5622.png

입력 받는 문자에 따라 받는 결과로 나오는 숫자가 달라지는 문자이다. 전에 1157번 문제처럼 문자를 숫자 형식으로 받으면 그 값을 인덱스로 사용할 수 있다는 점을 이용하고자 하였다. 배열을 문자당 걸리는 시간의 값으로 선언하였다. 문자를 인덱스로, 걸리는 시간을 배열의 값으로 설정하여 합하면 답을 구할 수 있다.

'문제풀이 > C 문제풀이' 카테고리의 다른 글

2920 + getchar + 배열 비교  (0) 2019.02.28
8958 + sizeof/strlen +char/int형 선언  (0) 2019.02.28
2577  (0) 2019.02.24
1152  (0) 2019.02.24
2941  (0) 2019.02.17