트랙
/
AWK
AWK
/
연습 문제
/
자동 가독성 지수
자동 가독성 지수

자동 가독성 지수

보통

지침

우리는 자라면서 점점 더 복잡한 글을 이해할 수 있게 돼요. 그런데 어떤 글의 복잡도는 어떻게 평가할까요? 그리고 그런 일을 하는 프로그램은 어떻게 만들 수 있을까요? 이 연습 문제에서는 글을 읽기가 얼마나 어려운지, 그리고 그 글에 가장 알맞은 나이가 몇 살인지 판단하는 프로그램을 작성해요.

글의 복잡도를 계산하기 위해 자동 가독성 지수(ARI) 공식을 사용해요. ARI는 1967년에 어떤 글을 읽는 데 필요한 미국의 학년 수준을 평가하기 위해 개발됐어요. ARI는 단어와 문장의 복잡도를 측정하는 방식으로 이를 평가해요. 복잡도는 단어당 문자 수와 문장당 단어 수로 측정해요. 값이 높을수록 더 복잡하다는 뜻이에요.

텍스트 미리보기

프로그램은 텍스트의 처음 세 문장을 표시해야 하는데, 각 문장은 50자를 넘지 않아야 해요. 문장이 50자를 넘으면 처음 50자까지만 출력하고 뒤에 줄임표(...)를 붙여요. 텍스트에 문장이 세 개보다 많으면 네 번째 줄로 줄임표만 출력해요.

"ari.txt"라는 파일에 다음과 같은 내용이 있다고 해봐요(이 텍스트는 아래 모든 예제에서 사용해요):

ARI was designed for military use in 1967. It was for real-time monitoring of readability on typewriters. It offered an automated counting method. It has similar results to other frameworks. This validates its accuracy.

그러면 프로그램은 다음과 같이 출력해야 해요:

The text is:
ARI was designed for military use in 1967.
It was for real-time monitoring of readability on ...
It offered an automated counting method.
...

텍스트 통계

프로그램은 텍스트의 문자, 단어, 문장 수를 계산해서 출력해야 해요. 문장은 마침표, 느낌표, 물음표로 끝날 수 있어요. 문장에서 단어는 공백 문자로 구분해요. 단어당 문자 수를 셀 때는 문장 부호를 포함해 공백이 아닌 모든 문자를 세요. 통계는 텍스트 미리보기 다음에 빈 줄로 구분해서 출력해요.

텍스트 통계 부분만 출력한 예시는 다음과 같아요:

Words: 34
Sentences: 5
Characters: 186

자동 가독성 지수

텍스트에 대한 이런 정보가 주어지면, 다음 공식으로 복잡도 수준을 계산할 수 있어요:

score = 4.71 * chars / words + 0.5 * words / sentences - 21.43

프로그램은 점수와 그 텍스트를 이해하는 데 필요한 대략적인 나이를 계산해서 출력해야 해요.

점수 나이 학년 수준
1 5-6 유치원
2 6-7 1학년
3 7-8 2학년
4 8-9 3학년
5 9-10 4학년
6 10-11 5학년
7 11-12 6학년
8 12-13 7학년
9 13-14 8학년
10 14-15 9학년
11 15-16 10학년
12 16-17 11학년
13 17-18 12학년
14 18-22 대학생

점수는 소수점 아래 두 자리까지 출력해야 해요. 나이나 학년 수준을 찾을 때 사용하는 점수는 가장 가까운 정수로 반올림하고 14를 넘지 않도록 해요. 다음은 프로그램의 예시 출력이에요:

The text is:
ARI was designed for military use in 1967.
It was for real-time monitoring of readability on ...
It offered an automated counting method.
...

Words: 34
Sentences: 5
Characters: 186
Score: 7.74
This text should be understood by 12-13 year-olds.
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
AWK Exercism

자동 가독성 지수 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 AWK 트랙을 개념 3개연습 문제 92개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.