www.acmicpc.net/problem/10816

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

1. 벡터에 다 담은 뒤 정렬해준다.

2. 벡터에서 upper_bound, lower_bound 의 차이를 통해 확인할 값의 갯수를 구한다.

[Point]

1. 처음에는 2천만개의 배열을 만들어놓고 입력받은 값에 해당하는 인덱스를 증가시키려고 했는데, 메모리 초과가 떴다. 정수 2천만개면 80Mib

정도 될 것 같은데, 입력받을때 사용되는 애들까지 합쳐져서 그런건지 잘 모르겠다.

-> 맞는 것 같다. 실제로 많은 사람들이 이 방식으로 풀었고, 전역 변수 하나에 입력시키니까 괜찮다

-> 단순실수였다. 배열 2천만개 한 줄 알았는데 0 하나 더 붙인 2억개여서 초과가 났었다.

2. upper_bound 와 lower_bound 함수

3. 갯수 구하는데는 갯수를 담는 정보가 굳이 필요없어도 된다는 사고 방식!

4. sync_with_stdio(0) 하나만으로는 시간단축이 안된다. cin.tie(0) 도 써주자.

[More]

1. map 을 사용하신 분이 있다 (18083393) 안될 줄 알았는데.. 게다가 추천 방식이다 ... stl 유튜브 강의 빨리 다 보기

2. 앞으로는 c언어 풀이도 많이 참고해보자


[Point]

1. 파이썬에서 제공되는 자료구조들은 엄청나게 최적화되어있을테니 사용만 하면 된다. stl 도 물론 좋지만 확실히 파이썬이 편리하긴하다

[More]

1. 여기서도 Counter 클래스 사용하시는분들이 많았다. 좀 알아보기

'PS > BOJ' 카테고리의 다른 글

[백준] 1764.py : 듣보잡  (0) 2020.05.10
[백준] 1302.py : 베스트셀러  (0) 2020.05.10
[백준] 2164.cpp : 카드2  (0) 2020.05.10
[백준] 1920.cpp : 수 찾기  (0) 2020.05.10
[백준] 11650.cpp : 좌표 정렬하기  (0) 2020.05.10

+ Recent posts