99클럽 코테 스터디 1일차 TIL + 소수 구하기

2025. 3. 31. 20:30·항해99 코테

✅ 오늘의 학습 키워드

소수 구하기 (백준 문제) 

 

✅ 공부한 내용

소수(Prime Number)란?

 1과 자기 자신을 제외하고 나누어 떨어지는 약수가 없는 자연수

 

✅ 오늘의 회고

소수 판별 문제에서 단순 구현 시 O(N²) 시간복잡도가 나와 시간초과 발생

  • 처음 작성한 코드:
bool isPrime(int n) {
    if (n < 2)
        return false;

    for (int i = 2; i < n; i++) { // 이 부분이 문제가 있음
        if (n % i == 0) {
            return false;
        }
    }
    return true;
}
  • 제곱근까지만 검사하는 방식으로 개선:
bool isPrime(int n) {
    if (n < 2)
        return false;

    for (int i = 2; i * i <= n; i++) { // 제곱근으로 최적화
        if (n % i == 0) {
            return false;
        }
    }
    return true;
}
  • 시간복잡도가 O(N²)에서 O(N√N)으로 개선됨

 

✅ 전체 코드

#include <iostream>

using namespace std;

bool isPrime(int n) {
    if (n < 2) 
        return false;

    for (int i = 2; i * i <= n; i++) {
        if (n % i == 0) {
            return false;
        }
    }
    return true;
}

int main() {

    int M, N;
    int cnt;

    cin >> M >> N;

    for (int i = M; i <= N; i++) {
        if (isPrime(i)) {
            cout << i << '\n';
        }
    }

    return 0;
}

 

✅ 새롭게 알게 된 점

  • 소수 판별 시 제곱근까지만 검사해도 충분한 이유: N = a×b 형태일 때 a와 b 중 하나는 반드시 √N 이하
  • 문제의 제한 조건(N의 크기)을 보고 적절한 알고리즘을 선택하는 방법
  • N ≤ 1,000,000인 경우 O(N²)는 시간초과, O(N√N) 또는 O(N log log N) 알고리즘이 필요

 

✅ 내일 학습할 것

  • 시간복잡도를 개선하기 위해 에라토스테네스의 체 구현 방법 심화 → O(N log log N)으로

'항해99 코테' 카테고리의 다른 글

99클럽 코테 스터디 7일차 TIL + 쇠막대기(백준 10799번)  (0) 2025.04.08
99클럽 코테 스터디 6일차 TIL + 섬의개수(백준 4963번)  (0) 2025.04.07
99클럽 코테 스터디 5일차 TIL + 수열(백준 2559번)  (0) 2025.04.04
99클럽 코테 스터디 3일차 TIL + 바탕화면 정리  (0) 2025.04.02
99클럽 코테 스터디 2일차 TIL + 피보나치 비스무리한 수열  (0) 2025.04.01
'항해99 코테' 카테고리의 다른 글
  • 99클럽 코테 스터디 6일차 TIL + 섬의개수(백준 4963번)
  • 99클럽 코테 스터디 5일차 TIL + 수열(백준 2559번)
  • 99클럽 코테 스터디 3일차 TIL + 바탕화면 정리
  • 99클럽 코테 스터디 2일차 TIL + 피보나치 비스무리한 수열
탱도시락
탱도시락
  • 탱도시락
    코딩도시락
    탱도시락
  • 전체
    오늘
    어제
    • 분류 전체보기 (25)
      • CS50 (4)
      • 항해99 코테 (17)
      • C++ 코딩테스트 준비 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코딩테스트
    인간도 모델이다
    컴퓨팅 사고력
    코테
    C++
    코딩테스트 합격자 되기
    유니코드
    James Cameron
    알고리즘 효율 분석
    배열의 효율성
    시간복잡도
    CS50
    Vector
    부스트코스
    컴퓨터과학
    디지털윤리
    창작과모방
    CS50 코칭스터디 2기
    99클럽
    항해99
    2차원 배열
    아스키코드
    2진법
    2진수
    개발자취업
    코딩테스트준비
    Til
    코칭스터디 2기
    코딩테스트 문법
    데이터 타입
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
탱도시락
99클럽 코테 스터디 1일차 TIL + 소수 구하기
상단으로

티스토리툴바