Programmers의 2021 Dev Matching 백엔드 문제 중 "다단계 문제"를 풀었다.
문제에서 요구사항은 다단계의 제일 위에 있는 주인공이 얼마를 벌 수 있는지였고,
다단계 직원 수의 max 값이 10,000명 이었기 때문에 직원들간의 다단계 트리관계를 저장하기 위해선
해시 맵이 필수라고 생각하였다.
그리고 다른 사람들의 풀이를 볼 때 그 생각은 얼추 맞은 듯 하다.
거기까진 좋았는데.. 나는 해시를 직접 구현해버리는 시간 낭비를 저질렀다.
다른 사람들의 코드를 보니 이미 C++에는 red-black tree 기반의 map 컨테이너와
해시 테이블 기반의 unordered_map 컨테이너를 그냥 가져다 쓰고 있었다.
앞으로 환경이 허락되는 한(코테에서 컴파일러가 해당 컨테이너를 제공해주는 한) 지원해주는 거 그냥 잘 가져다 쓰자.
PS)
문제에서 내가 한글을 잘못 이해한 게 있었는데,
'단, 10% 를 계산할 때에는 원 단위에서 절사하며,
10%를 계산한 금액이 1 원 미만인 경우에는 이득을 분배하지 않고 자신이 모두 가집니다.' 라는 말은
10%로 계산된 값의 소수점을 버린다는 말이다. (반올림이 아님)
* 참고
map과 unordered_map > https://velog.io/@pranne1224/C-unorderedmap-VS-map-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%B0%A8%EC%9D%B4%EB%8A%94
반응형
'Algorithm > Programmers' 카테고리의 다른 글
알고리즘 풀이를 위한 Python 사용법 - 자료구조편 (2) | 2022.10.04 |
---|---|
알고리즘 풀이를 위한 Python 사용법 - 기본편 (2) | 2022.10.03 |