ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1026번 보물 풀이
    Programming/[BAEKJOON] acmicpc 2018. 1. 3. 06:03

    1026번 보물 풀이 시작합니다.



    문제는 이러합니다.


    이 문제의 정답 비율이 60%가 넘는다는 사실을 잊고 너무 어렵게 생각을 해서..시간을 낭비했습니다ㅠ


    [힌트]

    중요한건 어렵게 생각하지 않는것인것 같습니다. ㅎ


    문제의 요지는 단순하게 A를 재배열하고, B를 재배열하면 안됩니다.


    이 문제에서는 단순히 입력을 받는 B배열을 재배열하면 틀리게끔 해놓은것 같습니다.


    그렇다면 정말 단순하지만 B의 배열에 있는 원소를 고대로! 다른 배열을 만들어 그 배열에 똑같이 넣어주고 정렬하면 되겠죠?


    정렬은 A배열은 작은수 순서대로, B는 큰수 순서대로 정렬해주면 문제가 요구한 정답이 나오게됩니다.


    네 그러면 됩니다. ㅎ


    풀이 공개합니다.


    [풀이 소스코드]


    #include <stdio.h>


    int main()

    {

    int input,i,j,tmp,total;

    scanf("%d",&input);

    int a[input],b[input],result[input],b2[input];

    for(i = 0; i < input; i++)

    {

    scanf("%d",&a[i]);

    }

    for(i = 0; i < input-1; i++)

    {

    for(j = 0; j < input-1; j++)

    {

    if(a[j] > a[j+1])

    {

    tmp = a[j];

    a[j] = a[j+1];

    a[j+1] = tmp;

    }

    }

    }

    for(i = 0; i <input; i++)

    {

    scanf("%d",&b[i]);

    }

    for(i = 0; i < input; i++) b2[i] = b[i];

    for(i = 0; i < input-1; i++)

    {

    for(j = 0; j < input-1; j++)

    {

    if(b2[j] < b2[j+1])

    {

    tmp = b2[j];

    b2[j] = b2[j+1];

    b2[j+1] = tmp;

    }

    }

    }

    for(i = 0; i < input; i++)

    {

    result[i] = a[i] * b2[i];

    total += result[i];

    }

    printf("%d",total);

    return 0;

    }

    저는 코드를 최적화하는것보다 풀이하는데 집중했습니다. (코드가 긴거에 대한 변명)


    이렇게 제출하게 되면..!



    정답이라고 채점이 됩니다.


    이상입니다.


    반응형

    'Programming > [BAEKJOON] acmicpc' 카테고리의 다른 글

    10828번 스택 풀이  (0) 2018.01.13
    1100번 하얀 칸 풀이  (0) 2018.01.09
    1037번 약수 풀이  (2) 2018.01.02
    1002번 터렛 풀이  (0) 2017.12.30
    1008번 A/B 풀이  (0) 2017.12.27
Designed by Tistory.