[Bronze II] 풀만한문제 - 29716
성능 요약
메모리: 1112 KB, 시간: 0 ms
분류
수학, 구현, 문자열
제출 일자
2024년 10월 2일 23:37:14
문제 설명
여름에는 잡초가 많이 자란다.
브실마을에 사는 사람들은 이번 여름 장맛비로 인해 갑자기 훌쩍 커 버린 잡초 때문에 고생하고 있다. 브실마을의 밭에서는 탐스러운 PS 문제들이 자라고 있는데, 잡초에 가려서 문제가 보이지 않게 되기 때문이다.
영어 대소문자와 공백, 숫자로 이루어진 PS 문제의 크기는 각 문제에 포함된 문자의 크기 합으로 정해진다. 대문자의 크기는 $4$, 숫자와 소문자의 크기는 $2$, 공백의 크기는 $1$이다.
이번 브실컵에 내야 하는 문제들을 수확하려던 비행씨의 밭에도 어느새 잡초가 무성하게 자라 버렸다. 코 앞까지 다가온 마감에 골머리를 앓던 비행씨는 잡초를 뽑기 전에, 먼저 잡초보다 더 크게 자란 문제들을 수확해서 내기로 했다. 수확하지 못한 문제들은 다음 대회를 위해 더 키워질 예정이다.
시간이 없는 비행씨를 위해 잡초보다 크기가 크지 않은, 풀만한문제들의 수를 알려 주는 프로그램을 만들어 주자.
입력
첫 번째 줄에 잡초의 크기 $J$와 자라고 있는 문제의 수 $N$이 공백으로 구분되어 주어진다. $(1\le J, N \le 500)$
두 번째 줄부터 $N$개 줄에 걸쳐, 영어 대소문자와 숫자 및 공백으로 이루어진 문제들이 한 줄에 하나씩 주어진다. 문제의 길이는 $1$ 이상 $100$ 이하이며, 공백으로 시작되거나 끝나지 않는다.
출력
풀만한문제의 수를 출력한다.
💡 해결 방법
💻 코드
#include <stdio.h>
#include <stdlib.h>
int check(char arr[])
{
int sum = 0;
for (int a = 0; arr[a] != '\0'; a++)
{
if (('A' <= arr[a] && arr[a] <= 'Z'))
sum += 4;
else if (('0' <= arr[a] && arr[a] <= '9') || ('a' <= arr[a] && arr[a] <= 'z'))
sum += 2;
else if (' ' == arr[a])
sum += 1;
}
return sum;
}
int main(int argc, char *argv[])
{
int J, N;
scanf("%d %d", &J, &N);
char arr1[100];
int ans = 0;
for (int a = 0; a < N; a++)
{
scanf(" %[^\n]", arr1);
if(J >= check(arr1))
ans++;
}
printf("%d", ans);
return 0;
}