lucete171   3년 전

1. 틀린 것은 아닌데 메모리 너무 잡아먹네요 동적 할당 시키면 메모리가 좀 줄지 않을까 생각은 했는데 어떤 코드 넣어야 되는지 모르겠어요

아마 13 18사이에서 해결하면 될 것 같은데 어떻게 생각하시나요...

2. 만약 cin.tie(NULL);

ios::sync_with_stdio(false)

넣고 싶으면 10 11사이에만 넣어야 맞던데 왜 그런가요 getchar()랑 관련이 있나요

bupjae   3년 전

1. vector 는 스스로 자신이 보유하고 있는 메모리 크기를 조절합니다.

이 때, 여러가지 이유로 원래 프로그램이 필요한 것 보다 여유를 두고 메모리를 할당합니다.

만약 정말로 필요한 만큼만 메모리를 할당하고 싶다면 11~12번째 줄에서 vector를 생성할 때 vector 의 크기를 미리 정해둘 수 있습니다.

   

2. 네. getchar 와 관련이 있습니다.

일단 ios::sync_with_stdio(false) 를 사용한 뒤에는 C++ 입출력 명령 (cin, cout 등 iostream 헤더 소속) 과 C 입출력 명령 (printf, scanf, getchar 등 cstdio 헤더 소속) 을 섞어서 쓰면 안 됩니다.

lucete171   3년 전

11-12 에서 크기 n으로 지정해줬을 때 틀렸다고 뜨는데 혹시 왜 그런지도 아시나요ㅜㅜ

bupjae   3년 전

11-12번째 줄에서 n으로 정했다면 17번째 줄 및 21번째 줄에서 push_back 가 아니라 v1[i] = v[i].second 이런 식으로 해야 합니다.

댓글을 작성하려면 로그인해야 합니다.