반응형
<코드>
#include<stdio.h>
int set[20];
int check(int arr[], int n)
{
int count = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (i == j) continue;
else
if (arr[i] * 2 == arr[j]) count++;
}
}
return count;
}
int main(void)
{
while (set[0] != -1)
{
for (int i = 0; i < 16; i++)
{
scanf("%d", &set[i]);
if (set[0] == -1) break;
if (set[i] == 0)
{
printf("%d\n", check(set, i));
break;
}
}
}
}
예전에 파이썬으로 풀었던 문제였는데 2~15개의 서로다른 자연수들이 주어진다고 하여 밑에 캡처와 같이 i < 15로 설정하였으나 리스트의 마지막 자리에 "0"을 받는다는 사실을 간과하여 자꾸 틀렸네요 하하...
<좀 더 간단한 코드>
#include<stdio.h>
int n, i;
int main()
{
for(;;)
{
int d[101] = { 0 };
for (n = 1; n > 0; d[n]++)
{
scanf("%d", &n);
if (n < 0)break;
}
if (n < 0)break; // 추가
for (n = 0, i = 1; i < 51; i++)
if (d[i]) n += d[i * 2];
printf("%d ", n);
}
}
파이썬으로 구현하면 정말 간단한 것 같습니다
<파이썬 코드>
while True:
cnt = 0
arr = list(map(float, input().split()))
if arr[0] == -1:
break
for i in range(0, len(arr)-1):
if arr[i]/2 in arr:
cnt += 1
print(cnt)
반응형
'🧩PS > 🥈Nomal' 카테고리의 다른 글
[C/C++] 백준 1026번 보물 (0) | 2020.04.12 |
---|---|
[C/C++] 백준 1003번 피보나치 함수 (0) | 2020.04.12 |
[C/C++] 백준 6376번 e 계산 (0) | 2020.04.11 |
[C/C++] 백준 10804번 카드 역배치 (0) | 2020.04.11 |
[C/C++] 백준 2748번 피보나치 수 2 동적 계획법(DP, Dynamic Programming) 풀이(+재귀, 반복알고리즘) (0) | 2020.04.10 |