-
백준 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