https://www.acmicpc.net/problem/1978
문제
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
풀이
(소수: 수학에서 1과 그 자신 이외의 자연수로는 나눌 수 없는 1보다 큰 자연수)
풀이1)
#include <stdio.h>
int main()
{
int n;
int num, cnt = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &num);
for (int j = 2; j <= num; j++)
{
if (num == j)
{
cnt++;
}
if (num % j == 0)
{
break;
}
}
}
printf("%d", cnt);
return 0;
}
단순 무식하게 첫번째부터~ 그 수까지 체크하는 방법으로 계산
배운점
1)for 문이 돌 때마다, scanf를 하는 아이디어를 사용하는 방법이 존재한다
2)int 배열 [ 1001]을 생각했는데 1001이면 범위가 너무 넓다.
-> 최대한 적게 할 수 있는 idea를 생각해야한다.
1)을 생각하지 못했기 때문임
3)설계에 80%의 시간을 들이자
->쓸데 없는 코드 작성하다가 시간 다 날린다.
(굳이 제곱근 어쩌구 해서 구하지 말고 그냥 처음부터 단순하게세는 프로그램을 작성하는 것도 방법이었음)
4)단순한 코드부터 적용하자
굳이 어렵게 풀 필요 없다.
'프로그래밍 언어 > C' 카테고리의 다른 글
[C언어] 문자열 포인터와 문자열 배열 차이 정리 (0) | 2022.08.13 |
---|---|
백준 C언어 1011번 Fly me to the Alpha Centauri 풀이 (0) | 2021.10.07 |
C26451번 오류 해결 (0) | 2021.09.30 |
C언어 백준 10757 큰수 A+B 풀이 (1) | 2021.09.26 |
C언어 2839 설탕 배달 풀이 (0) | 2021.09.24 |