#include <stdio.h>
int main()
{
int n[100000] = {}, m[100000] = {}, nn, mm, num1, num2;
scanf("%d", &nn);
num1 = nn;
for(nn = 0; nn < num1; nn++) scanf("%d", &n[nn]);
scanf("%d", &mm);
num2 = mm;
for(mm = 0; mm < num2; mm++) scanf("%d", &m[mm]);
for (mm = 0; mm < num2; mm++)
{
for (nn = 0; nn < num1 + 1; nn++)
{
if (n[nn] == m[mm])
{
puts("1");
break;
}
if (nn == num1)
{
puts("0");
break;
}
}
}
return 0;
}
알고리즘 문제 푼건데
출력값은 제대로 잘 나오는데
시간 초과래여..
저도 알고리즘은 쪼렙이라 뭐라 말은 못 하겠으나 포문 너무 막 짜신 거 같단 생각이 듭니다
일단 복잡도가 몇 인지부터 우리 한 번 계산을 해 봅시다
어떤 의미로 막 짰다는건가여? 너무 남용했다는건가여?
그냥 다른 알고리즘을 생각해내야 할 것 같은데 - return 0;
내가 멍청해서 그런데 잘못된 부분들좀 설명해주면 안데여?
그냥 다른 방법으로 짜야될 것 같아 저렇게 짜서 타임오버면 방법이 틀린거야 - return 0;
아 시간복잡도라는게 이런거구나.. 내가 이 코드 변형시켜서 시간복잡도 확 줄여보꼐여 ㅎ
이 코드 변형시키지 말고 다시 생각해 - return 0;