저는 다른 언어 (golang) 을 이용합니다만, map 을 이용해서 풀었습니다. (제출번호 7989400)
golang 의 map 은 개념적으로 C++의 unordered_map 과 비슷한 자료구조 라고 생각하시면 됩니다.
다만, 시간이 빡빡하게 나오게 되었습니다. 데이터에 따라서는 제한 시간을 초과할 지도 모르겠네요.
7453번 - 합이 0인 네 정수
저는 다른 언어 (golang) 을 이용합니다만, map 을 이용해서 풀었습니다. (제출번호 7989400)
golang 의 map 은 개념적으로 C++의 unordered_map 과 비슷한 자료구조 라고 생각하시면 됩니다.
다만, 시간이 빡빡하게 나오게 되었습니다. 데이터에 따라서는 제한 시간을 초과할 지도 모르겠네요.
저는 python(정확히는 pypy)를 이용하였는데, ab cd의 맵을 만들지 않고 cd에 대해서만 map을 만들고, ab 가능한 합들에 대해서 해당하는 짝이 있는지를 cd에서 확인하였습니다.
댓글을 작성하려면 로그인해야 합니다.
smgod 4년 전
안녕하세요 다른 코드들 참고해서 lower bound . upper bound 를 두고 이진탐색을 해서 찾는건 이해했습니다.
저는 처음에 이문제를 map 을 통해서 접근하려고 했는데 왜 Map을 사용하면 안되는지 궁금합니다.
unordered map사용시 O(1) 이면 삽입과 서치가 가능하다고 찾았습니다.
A + B를 해서 나오는 경우의 수를 map ab로 매핑하고
C+ D 를 해서 나오는 겨우의 수를 mab cd로 매핑하였습니다.
* 다만 해쉬 collison 떄문에 느려질 수 있다고 봤는데 5000* 5000 = 25,000,000 2천 5백만개의 데이터에서도 해쉬 충돌이 발생하나요 ?
또 만약 제 코드에서 속도를 추가적으로 감속시킬수 있는 방안이 있다며 알려주시면 감사하겠습니다 ㅜㅜ
혹시또 Map으로 짜신분이 있다면 한수 알려주세요
* 그리고 추가적으로 이진 탐색문제(포켓몬문제 , 등등 위에 문제) 를 Map 을 이용해서 많이 풀었는데
Map 을 이용했을 경우와 이진탐색을 이용했을 경우 속도차이가 얼마나 나는지도 알고싶습니다.
감사합니다 :)