2581번
bool 타입 : return 값이 true false
bool is_prime(int num) {
if (num < 2) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
a) 1은 x
b) sqrt(36) = 6 , 6 * 6= 36
거듭제곱근이 제곱의 숫자를 넘기 전까지만 확인하면됨
c) 나머지는 소수이므로 true
for문속에
if (min_prime == -1) {
min_prime = i;
}
: i 값이 한번 저장 되면 다른 값으로 저장 되지 않음
11653번
a) 2 4 6 8 10 은 다 2의 배수라 쭉 2로 나눔
b) 3 부터 소수들은 따로 나눔 ( 거듭제곱근까지)
c) 그러고도 남은 수 ex) 13 은 소수 이므로 그냥 출력
1085번
1. x,y 에 있고, (0,0) ~ (w,h) 이므로
2. 왼쪽 경계선 거리 : x
3. 아래쪽 경계선 거리 : y
4. 위쪽 경계선 거리 h-y
5. 오른쪽 경계썬 거리 w-x
// x < w - x : w-x 가 x 보다 큰가?
3009번
직사각형 : x or y 같은 값이 두개씩 있음
> 이미 2개가 같다면 다른쪽을 넣음
int fourth_x = (x[0] == x[1]) ? x[2] : (x[0] == x[2] ? x[1] : x[0]);
int fourth_y = (y[0] == y[1]) ? y[2] : (y[0] == y[2] ? y[1] : y[0]);
9063번
int min_x = 10001, max_x = -10001, min_y = 10001, max_y = -10001;
초기값 : min 을 제일 큰 값으로, max 를 제일 작은값으로
> 값 갱신시 유용
for문
초기값보다 작으면 min갱신, 크면 max 갱신
최대값 - 최소값 -> 넓이 구하면됨
'C언어 > 백준' 카테고리의 다른 글
2789번, 2231번 (0) | 2024.11.23 |
---|---|
5073번, 14215번 (0) | 2024.11.21 |
2869번, 5086번, 2501번, 9506번, 1978번 (0) | 2024.11.19 |
1193번 (0) | 2024.11.16 |
2738번, 2566번, 2563번, 2745번 (0) | 2024.11.14 |