이건 무슨차이인가요?
232
작성자 없음
작성한 질문수 0
배열크기를 300001로 하는거랑 30001로 하는거랑
success 갯수가 다른데 무슨차이인가요?
300001로하면 4번까진 성공나오고 5번은 타임리밋인데
30001로 배열크기로하면 2번부터 타임리밋이 나옵니다..
#pragma warning(disable:4996)
#include <stdio.h>
#include <string.h>
#include <math.h>
#include<time.h>
#include<iostream>
#define endl '\n';
using namespace std;
int a[300001];
int b[300001];
int r[300001];
int main() {
int n1,n2,k=0,j=0,max=0;
scanf("%d",&n1);
for(int i=1;i<=n1;i++)
scanf("%d",&a[i]);
scanf("%d",&n2);
for(int i=1;i<=n2;i++)
scanf("%d",&b[i]);
for(int i=1;i<=n1;i++) {
k=a[i];
if(k>max)
max=k;
r[k]++;
}
for(int i=1;i<=n2;i++) {
j=b[i];
if(j>max)
max=j;
r[j]++;
}
for(int i=1;i<=max;i++) {
if(r[i]==2)
printf("%d ",i);
}
}
답변 1
0
저번 LRU 질문에서 재질문에 대한 댓글을 3일 후쯤 수정해서 올렸는데 한 번 보시기 바랍니다.
내가 만든 프로그램의 성능을 좌우하는 것은 시간복잡도도 있지만 공간복잡도도 있습니다. 공간복잡도란 메모리를 절약해야 한다는 것입니다. 실제를 메모리 사용량이 늘어나면 프로그램은 속도가 확연히 느려집니다.
입력되는 데이터의 값을 배열의 인덱스로 사용할 때는 조심해야 합니다. 이 문제의 경우 입력되는 값이 정수범위니까
21억크기의 값까지 입력되니, a, b, r 배열의 크기를 int a[2147483648] 식으로 잡아야 합니다 엄청난 메모리 낭비가 일어납니다. 제가 만든 입력데이터는 100만까지만 했기 때문에 a, b, r 세개의 배열을 int a[1000001]; 식으로 잡으면 5번까지 통과는 될겁니다. 하지만 이 문제는 제가 영상에서 설명한 방식으로 해결하기 바랍니다.
테스트 케이스 질문
0
373
1
병합정렬 시간복잡도 질문
0
462
1
41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.
0
1345
2
질문드립니다.
0
376
1
질문드립니다!
0
430
1
dev 프로그램 질문
0
275
1
문제가 이해가 안되요
0
376
1
4번 나이차이 문제 접근법 질문 드립니다.
0
307
1
source file not compiled
0
1047
3
59번 질문드립니다.
0
372
1
25번 문제 질문
0
349
1
4. 나이차이 문제 질문입니다.
0
372
1
90번 라이언 킹 심바 1번 테스트 케이스
0
470
1
71번 문제 전역 변수 질문 있습니다
0
365
1
75번, 79번 priority_queue관련
1
356
1
75.최대 수입 스케줄
0
400
2
복면산 정답의 수
0
432
1
테스트 케이스에 대해서
0
445
1
수업 내용 질문입니다!
1
232
1
풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!
0
822
2
12. 플로이드-와샬(그래프 최단거리) . 27:25초
0
255
1
다른 풀이 방식
0
317
1
크루스칼 vs 프림
0
306
1
숫자 총개수 small 질문있습니다.
0
243
1





