ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 1037번 약수
    tmp/[?] trouble [!] 2018. 1. 2. 01:02


    [풀이를 위한 소스코드 작성]


    [소스코드]


    #include <stdio.h>


    int main(void)

    {

    int input,i,j,temp,result;

    scanf("%d",&input);

    int arr[input];

    if(input == 0)

    return 0;

    else if(input == 1)

    {

    scanf("%d",&input);

    printf("%d",input);

    }

    else if(input >= 2)

    {

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

    {

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

    if(arr[i] == 1)

    return 0;

    }

    //배열값 정렬 

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

    {

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

    {

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

    {

    temp = arr[j];

                    arr[j] = arr[j + 1];

                    arr[j + 1] = temp;

    }

    }

    }

    //값을 비교하기 위함 

    result = arr[0] * arr[input-1];

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

    {

    if((arr[i] * arr[input-1-i]) != result)

    return 0;

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

    {

    if(arr[i] == arr[j+1])

    return 0;

    }

    }

    printf("%d",result);

    }

    return 0;

    }



    출력결과 일치하는것 같은데 91%에서 틀렸다고 채점이 된다.


    [내 생각]

    배열값을 정렬한 후, 크던 작던 처음 값(arr[0])과 마지막값(arr[input-1])을 곱하면 내가 구해야하는 result(출력결과)가 나온다.


    이때 3 -> 3 3 3 -> 9 가 나오는 결과와

    2 -> 1 7 -> 7 이 안나오도록 예외처리를 해준다.


    즉 같은 값을 입력하지 못하고 1,7 과 같이 약수가 1과 자기자신(7)만 있는 경우 예외로 return 0; 하여 종료시킨다.


    이렇게 하면 되겠지 했는데 안되네용..

    반응형

    'tmp > [?] trouble [!]' 카테고리의 다른 글

    Windows 10 입력 씹힘(?) 현상  (1) 2020.08.04
    라즈베리파이 포맷 오류  (0) 2018.11.19
    [!시간낭비 주의] ELF Memory Protection DEP  (0) 2018.02.07
    백준 9012번 시간초과  (0) 2018.01.14
    [BAEKJOON] 1008번 출력 결과  (0) 2017.12.27
Designed by Tistory.