요약 - 단어 카운터
Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 34번째.
챌린지
쉬움문장을 입력으로 받습니다. 문장에서 각 단어가 나타나는 횟수를 세어 해시 맵(hash map)에 저장하세요. 그런 다음 각 고유 단어와 해당 단어의 빈도수를 출력하세요.
요구 사항:
std::collections에서HashMap을 임포트하세요.HashMap<String, i32>타입을 가진 가변(mutable) 해시 맵을 생성하세요.- 입력 문장을 한 줄로 읽으세요.
.split_whitespace()를 사용하여 문장을 개별 단어로 분리하세요.- 각 단어에 대해,
.entry()와.or_insert(0)를 사용하여 단어가 존재하지 않을 경우 빈도수를0으로 초기화하세요. .or_insert(0)를 사용한 후, 해당 단어의 빈도수를1증가시키세요.- 모든 단어를 처리한 후, 해시 맵을 순회하며 각 단어와 빈도수를
[word]: [count]형식으로 출력하세요.
입력:
- 공백으로 구분된 단어들이 포함된 한 줄의 문장 (예:
hello world hello rust world hello)
출력:
- 각 고유 단어에 대해
[word]: [count]형식으로 한 줄씩 출력합니다. - 출력되는 줄의 순서는 테스트 실행마다 다를 수 있습니다.
직접 해보기
use std::collections::HashMap;
use std::io;
fn main() {
// 입력 문장 읽기
let mut sentence = String::new();
io::stdin().read_line(&mut sentence).expect("Failed to read line");
let sentence = sentence.trim();
// 단어 빈도수를 저장하기 위한 가변 해시 맵 생성
let mut word_count: HashMap<String, i32> = HashMap::new();
// TODO: 아래에 코드를 작성하세요
// 문장을 단어로 분리하고 각 단어의 개수를 셉니다
// 각 단어와 해당 빈도수를 출력합니다
}