해시맵 연습문제는 명령을 자료구조 변화로 번역한다
부서별 직원 목록 문제는 입력 문장을 파싱하고, 부서를 키로 삼고, 이름
목록을 정렬해 보여주는 작은 데이터 흐름이다.
저장 모델
Key
부서 이름, 예:
Engineering
Value
직원 이름 목록, 예:
Vec<String>
Update
entry로 없으면 만들고 있으면 추가한다.
01
입력 분해
Add Sally to Engineering에서 동사, 이름, 부서를
분리한다.
02
키 선택
부서를 해시맵 키로 두면 부서별 조회가 바로 맞아떨어진다.
03
목록 갱신
없던 부서는 새 벡터를 만들고, 있던 부서는 이름을 추가한다.
04
정렬 출력
부서별 또는 전체 목록을 보여주기 전에 알파벳 순서로 정렬한다.
| 문제 | 핵심 컬렉션 | 주의점 |
|---|---|---|
| 중간값 | Vec |
정렬 후 가운데 인덱스를 읽는다. |
| 최빈값 |
HashMap<값, 횟수>
|
entry로 카운트를 누적한다. |
| 피그 라틴 |
String, chars
|
UTF-8 문자 경계를 무시하지 않는다. |
입력 검증
명령 형식이 틀리면 맵을 바꾸기 전에 거절한다.
소유권
저장할 이름과 부서는 맵이 소유할 문자열로 두는 편이 단순하다.
출력 안정성
해시맵 순서는 임의이므로 보여줄 때 명시적으로 정렬한다.