๐Ÿ“ Coding Test Study/Math

Big-O ํ‘œ๊ธฐ๋ฒ•

ibelieveinme 2021. 4. 25. 17:40
728x90

๋ณดํ†ต 1์–ต ๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ํ•˜๋Š” ๋ฐ์— 1์ดˆ๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค.

๋ฌธ์ œ์—์„œ ์ œํ•œ์‹œ๊ฐ„์ด 1์ดˆ๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ตœ๋Œ€ ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ 1์–ต ๋ฒˆ์„ ๋„˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.


1. Big-O ํ‘œ๊ธฐ๋ฒ• 1๋‹จ๊ณ„: ์ˆ˜ํ–‰๋˜๋Š” ์—ฐ์‚ฐ(์‚ฐ์ˆ , ๋น„๊ต, ๋Œ€์ž… ๋“ฑ)์˜ ๊ฐœ์ˆ˜๋ฅผ ๋Œ€๋žต์ ์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค.

public int Add(int N){
	return N + N;
}

=> ๋Œ€์ž…ํ•˜๋Š” 1๋ฒˆ์˜ ์—ฐ์‚ฐ

public int Add2(int N){
	int sum = 0;
    
    for(int i = 0; i<N; i++){
    	sum += i;
        return sum;
    }
}

=> N(for๋ฌธ) + 1(sum์— 0์„ ๋Œ€์ž…ํ•˜๋Š” ์—ฐ์‚ฐ) ๋ฒˆ์˜ ์—ฐ์‚ฐ

public int Add3(int N){
	int sum = 0;
    for(int i = 0; i<N; i++){
    	for(int j = 0; j<N; j++){
        	sum += 1;
        }
    }
    return sum;
}

=> N²(์ด์ค‘ for๋ฌธ) + 1(sum์— 0์„ ๋Œ€์ž…ํ•˜๋Š” ์—ฐ์‚ฐ) ๋ฒˆ์˜ ์—ฐ์‚ฐ

 

2. Big-O ํ‘œ๊ธฐ๋ฒ• 2๋‹จ๊ณ„: ๋Œ€์žฅ๋งŒ ๋‚จ๊ธฐ์ž

๊ทœ์น™1) ์˜ํ–ฅ๋ ฅ์ด ๊ฐ€์žฅ ํฐ ๋Œ€ํ‘œ ํ•ญ๋ชฉ๋งŒ ๋‚จ๊ธฐ๊ณ  ์‚ญ์ œํ•œ๋‹ค.

๊ทœ์น™2) ์ƒ์ˆ˜๋Š” ๋ฌด์‹œ(ex. 2N -> N)

 

3. Big-O ํ‘œ๊ธฐ๋ฒ• ํฌ๊ธฐ ๋น„๊ต

O(1) < O(logN) < O(N) < O(NlogN) < O(N²)

728x90