관리 메뉴

KorSA

C++ 에서 hash 쓸 땐 unordered_map !! 본문

Algorithm/Programmers

C++ 에서 hash 쓸 땐 unordered_map !!

Praiv. 2022. 9. 30. 00:08
320x100

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

728x90
728x90
Comments