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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바