본문 바로가기

알고리즘 코딩테스트

1.핵심이론 , 시간복잡도

시간복잡도는 알고리즘 선택에 기준이 된다.

 

시간복잡도는 주어진 문제를 해결하기 위한 연산 횟수를 말한다.

수행시간은 1억번 연산을 1초로 간주하고 예측한다.

 

시간복잡도의 유형 3가지

1.빅오메가 , 경우의 수가 최선일때의 연산횟수를 나타낸 표기법

2.빅 세타 , 경우의 수가 보통일때의 연산횟수를 나타낸 표기법

3.빅 오 , 경우의 수가 최악일때 연산횟수를 나타낸 표기법

 

다음은 0과 99 사이의 무작위값을 찾아 출력하는 코드이다.

public class example1{

public static void main(String[] args){

int findNumber = (int)(Math.random() * 100);

 

for(int i=0; i<100; i++){

if(i == findNumber){

 System.out.println(i);

break;

}

}

}

}

 

위 문제에서 각 시간복잡도는

1.빅 오메가 (최선) 은 값이 바로 0이나와서 1번만 연산을 하는 경우

2.빅 세타 (보통) 은 제시된 값 0~99의 평균값 만큼을 연산하는 경우

3.빅 오(최악) 은 연산이 마지막까지 진행된 경우

 

코딩 테스트 때에는 항상 빅 오(최악)의 염두하고 코드를 작성해야 한다.

'알고리즘 코딩테스트' 카테고리의 다른 글

문제1 , 수 정렬하기  (0) 2023.07.19