42 — 단어 세기: 어느 말이 몇 번 나왔나
「어느 말이 몇 번 나왔나」는 이름마다 숫자 하나입니다. 그래서 표입니다. 어려운 곳은 한 군데뿐입니다 — 처음 보는 낱말과 이미 본 낱말을 다르게 다루어야 합니다.
단계
글을 낱말로 나눕니다:
실행해 보기 →글은 사과 배 사과 감 말들은 글을 빈칸으로 나눈 것 말들 개수 말해줘4가 나옵니다. 같은 낱말이 두 번 있어도 목록에는 두 번 다 들어 있습니다.처음 보는 낱말은 1로 시작합니다:
실행해 보기 →세기표는 빈 표 세기표에 사과를 1로 넣어 세기표의 사과 말해줘이미 본 낱말은 꺼내서 하나 올리고 다시 넣습니다. 세 걸음입니다:
실행해 보기 →세기표는 빈 표 세기표에 사과를 1로 넣어 지금까지는 세기표의 사과 지금까지에 1 더해 세기표에 사과를 지금까지로 넣어 세기표의 사과 말해줘2가 나옵니다.둘을 가르는 것은 「이미 있는가」입니다:
실행해 보기 →세기표는 빈 표 말은 사과 만약에 세기표에 말이 있으면 두 번째 이상입니다 말해줘 아니면 처음 봅니다 말해줘 끝처음 봅니다가 나옵니다.전체입니다. 낱말을 하나씩 보면서 둘 중 하나를 합니다:
실행해 보기 →글은 사과 배 사과 감 배 사과 말들은 글을 빈칸으로 나눈 것 세기표는 빈 표 말들의 말마다 반복해 만약에 세기표에 말이 있으면 지금까지는 세기표의 말 지금까지에 1 더해 세기표에 말을 지금까지로 넣어 아니면 세기표에 말을 1로 넣어 끝 끝 세기표의 이름마다 반복해 이름 말해줘 세기표의 이름 말해줘 끝 세기표 개수 말해줘사과 3·배 2·감 1이 나오고, 마지막3은 서로 다른 낱말이 몇 가지인지입니다.
직접 해보기
같은 낱말이 대문자로도 나오면 따로 세어집니다. 세기 전에 말 소문자로를
이름에 담아 그것을 세면 하나로 합쳐집니다. 그리고 두 번 이상 나온 낱말만
보여 주려면, 마지막 훑기에서 만약에로 걸러 내면 됩니다.
배운 것
- 「이름마다 숫자 하나」는 표입니다.
- 처음 보는 것과 이미 본 것을
…에 …가 있으면으로 가릅니다. - 표 안의 숫자를 올리는 것은 꺼내기·더하기·다시 넣기 세 걸음입니다.
- 표의
개수는 항목 수가 아니라 서로 다른 이름의 수입니다.