작성
·
286
·
수정됨
답변 1
1
안녕하세요 sso님 ㅎㅎ
이 문제는 첫글자를 기반으로 같은 첫글자 5개 이상이 나온 거를 가지고 문자열을 만드는 문제죠?
즉, 받아오는 문자열의 첫글자만을 카운팅하면 됩니다.
for(int i = 0; i < n; i++){
cin >> s;
cnt[s[0] - 'a']++;
}
앞의 코드는 받아오는 문자열의 첫글자만을 ++합니다.
예를 들어 banana라는 문자열이 입력받는다면
b에 해당하는 부분만 카운팅을 합니다.
결국
'b' - 'a'이기 때문에 cnt[1]++이 됩니다.
문자는 아스키코드로 표현된다를 주목해주세요.
a는 97이며 b는 98입니다.
이를 이용해서 계속해서 97을 빼가며 0 ~ 26사이의 값들로 만들어 ++ 해서 해당 로직을 이어가는 것입니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.