알고리즘문제

코드그라운드 49번 문제 안녕

Beginner:) 2017. 9. 26.
320x100


1. h, e, l, o  의 문자만 카운팅한다.

2. l의 경우는 두개가 필요하기 때문에 카운팅이 끝나면 나누기 2를 해야합니다. 저는 시프트연산 >> 을 썻지만 나누기해도 무방합니다.

3. 카운트가 가장 작은 값을 찾습니다.





#include <stdio.h>

int main(void)
{
int T, test_case;
int cnt;
int Answer;
int arr[121];
char str[10001];
scanf("%d", &T);
for(test_case = 0; test_case < T; test_case++)
{
Answer=10001;
cnt=0;
arr['h']=0;
arr['e']=0;
arr['l']=0;
arr['o']=0;

scanf("%s",str);

while(str[cnt]!=NULL)
{
arr[str[cnt]]++;
cnt++;
}
arr['l']= arr['l']>>1;
Answer=Answer>arr['h']?arr['h']:Answer;
Answer=Answer>arr['e']?arr['e']:Answer;
Answer=Answer>arr['l']?arr['l']:Answer;
Answer=Answer>arr['o']?arr['o']:Answer;

printf("Case #%d\n", test_case+1);
printf("%d\n", Answer);
}

return 0;
}


반응형

댓글