[Coding Test] 소수 구하기
에라토스테네스의 체 원리구하고자 하는 소수의 범위만큼 1차원 배열 생성2부터 시작하고 현재 숫자가 지워진 상태가 아닌 경우 현재 선택된 숫자의 배수에 해당하는 수를 배열에서 끝까지 탐색하면서 삭제, 이때 처음으로 선택된 숫자는 삭제하지 않음배열의 끝까지 반복한 후 배열에 남은 수를 출력N의 제곱근까지만 탐색하면 for문을 생략하게 만들어 시간 복잡도는 O(Nlog(logN))primes = [True] * 1000001primes[0] = Falseprimes[1] = Falsefor i in range(2, int(math.sqrt(1000001)) + 1): if primes[i] == False: continue for j in range(i * 2, 1000001, i): ..
2024.09.01
[Coding Test] 최대공약수 & 최소공배수 구하기
def get_gcd(a, b): # 최대공약수(유클리드 호제법) if a
2024.09.01
[Coding Test] 코딩 테스트 기초
자료구조배열(메모리의 연속 공간에 데이터 저장), 리스트(불연속 공간에 데이터 저장), 벡터(동적 배열)구간 합(합 배열) - i, j까지의 합을 구하는 문제에서 O(N)의 시간 복잡도를 가짐투 포인터 - 주어진 입력 값에서 특정 값을 만들어낼 때 유용슬라이딩 윈도우 - 정해진 범위 내에서 옆으로 이동하며 검사할 때 유용스택(후입선출), 큐(선입선출), 우선순위 큐(사용자 정의 비교 함수로 정렬하는 큐) - ConferenceDo it! 알고리즘 코딩 테스트 C++편 - 김종관
2024.04.22
[Coding Test] 기본
알고리즘 선택의 기준입력값 개수를 확인해 사용할 알고리즘을 선정C++에서는 1억 번의 연산을 1초의 수행 시간으로 예측 가능시간 복잡도빅-오메가 : 최선일 때의 연산 횟수를 나타낸 표기법빅-세타 : 보통일 때의 연산 횟수를 나타낸 표기법빅-오 : 최악일 때의 연산 횟수를 나타낸 표기법※ 코딩 테스트에서는 최악의 경우를 고려한 빅오 표기법을 기준으로 계산활용법주어진 실행 제한 시간을 1초로 가정C++ 기준 100,000,000 번 이하의 연산을 수행해야 함입력값 개수의 최대가 1,000이라면,  O(n^2)의 시간 복잡도를 가진 알고리즘을 사용 가능입력값 개수의 최대가 10,000,000이라면, O(nlogn)의 시간 복잡도를 가진 알고리즘 사용 가능입력값 개수의 최대가 100,000,000이라면, O(n..
2024.04.22