์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Flex
- position
- Gatsby
- ์๊ณ ๋ฆฌ์ฆ
- float
- Props
- useRef
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ธ๋ก๊ทธ
- ๋ฐ๋ธ์ฝ์ค
- useEffect
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- ์ฝ๋ฉํ ์คํธ
- history api
- CSS
- REACT
- ํ๋ก ํธ์๋
- fetch API
- Today
- Total
Daehyunii's Dev-blog
04 ๋ฌธ์ ํด๊ฒฐ ํจํด ๋ณธ๋ฌธ
04 ๋ฌธ์ ํด๊ฒฐ ํจํด
Daehyunii 2022. 8. 4. 00:224.1 ๋ํ์ ์ธ ํจํด๋ค
๋ฌธ์ ํด๊ฒฐ ์ ๊ทผ๋ฒ์ ์ด์ด์ง๋ ๋ด์ฉ์ผ๋ก ์ด์ ๋ ๋๋๋ก ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ํจํด์ ์ดํด๋ณด๋ ค ํ๋ค. ๊ต์ฅํ ๋ง์ ํจํด๋ค์ด ์กด์ฌํ์ง๋ง ๋ํ์ ์ธ ํจํด๋ค๋ง ์ดํด๋ณด์.(๊ณต์์ ์ธ ์ด๋ฆ์ด ๋ถ์ ํจํด๋ค๋ ์์ง๋ง, ๊ทธ๋ ์ง ์์ ํจํด๋ค๋ ์กด์ฌํ๋ค.)
1. Frequency Counter ๋น๋์ ์ธ๊ธฐ ํจํด (๊ฐ์ฌ๋์ด ์ง์ ๋ถ์ธ ์ด๋ฆ์ด๋ค)
2. Multiple Pointers ๋ค์ค ํฌ์ธํฐ ํจํด (๊ฐ์ฌ๋์ด ์ง์ ๋ถ์ธ ์ด๋ฆ์ด๋ค)
3. Sliding Window ๊ธฐ์ค์ ๊ฐ ์ด๋ ๋ฐฐ์ด ํจํด
4. Divide and Conquer ๋ถํ ๊ณผ ์ ๋ณต ํจํด (๊ณต์์ ์ธ ์ด๋ฆ์ด๋ค. ์ค์ ์์ฃผ ์ฌ์ฉ๋จ)
5. Greedy Algorithms ํ์ ์๊ณ ๋ฆฌ์ฆ ํจํด (์ค์ ์์ฃผ ์ฌ์ฉ๋จ)
์ด ์ฒ๋ผ ๋ฌธ์ ํด๊ฒฐ์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ ํจํด๋ค์ด ๋ง์ด ์กด์ฌํ๋ค.
4.2 Frequency Counter ๋น๋์ ์ธ๊ธฐ ํจํด (๊ณต์์ ์ธ ์ด๋ฆ์ ์๋ค)
๋น๋์ ์ธ๊ธฐ ํจํด์ ๋ณดํต ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด์ ๋ค์ํ ๊ฐ๊ณผ ๋น๋๋ฅผ ์์งํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ ํจํด์ด๋ค. ์ด ํจํด์ ์ฌ๋ฌ ๋ฐ์ดํฐ์ ์ ๋ ฅ๊ฐ์ด ์๋ก ๋น์ทํ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋์ง, ์๋ก ๊ฐ์ ์๋๊ทธ๋จ(๋ง ์ฅ๋์์ ์ ๋ก)์ธ์ง, ๊ฐ์ด ๋ค๋ฅธ ๊ฐ์ ํฌํจ๋๋์ง ์ฌ๋ถ๋ฅผ ๋น๊ตํ ๋ ์ ์ฉํ๋ค.
์๋ฅผ๋ค์ด, '2๊ฐ์ ๋ฐฐ์ด์ ํ์ฉํ๋ arrayCompare ๋ผ๋ ํจ์๋ฅผ ์์ฑํ๋ค'๊ณ ์๊ฐํด๋ณด์. ์ด ํจ์๋ ์ฒ์์ผ๋ก ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ๋ชจ๋ ๊ฐ์ ์ ๊ณฑ์ด ๋ ๋ฒ์งธ๋ก ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ๋ชจ๋ ํฌํจ๋์ด ์๋์ง ์๊ธฐ ์ํ ํจ์๋ค. ์์๋ ์๊ด์์ง๋ง ๋ ๋ฐฐ์ด์ ์์ ๊ฐ์๋ ๋์ผํด์ผ ํ๋ค.
ex) [1, 2, 3] [1, 4, 9] -> true
๋น๋์ ์ธ๊ธฐ ํจํด์ ์ฌ์ฉํ์ง ์๊ณ ์์ฑํด๋ณด์
function arrayCompare(array1, array2){
if(array1.length !== array2.length){
return false;
}
for(let i = 0; i < array1.length; i++){ //์ค์
let correctInd = array2.indexOf(array1[i] ** 2) //์ธ๋ฑ์ค์ค๋ธ๊ฐ ์ค์์
if(correctInd === -1) {
return false;
}
console.log(array2);
array2.splice(correctInd,1)
}
return true;
}//์ค์์ ๊ณฑ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์
console.log(arrayCompare([1,2,3,2], [9,1,4,4]))
์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ฉด O(N^2) ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋ ํจ์๊ฐ ์์ฑ๋๋ค. ์ด๋ฒ์๋ ํจํด์ ์ฌ์ฉํด์ ์์ฑํด ๋ณด์.
function arrayCompare(array1, array2){
if(array1.length !== array2.length){
return false;
}
let freCounter1 = {}
let freCounter2 = {}
for(let foo of array1){
freCounter1[foo] = (freCounter1[foo] || 0) + 1
}
for(let foo of array2){
freCounter2[foo] = (freCounter2[foo] || 0) + 1
}
console.log(freCounter1);
console.log(freCounter2);
for(let bar in freCounter1){
if(!(bar ** 2 in freCounter2)){
return false
}
if(freCounter2[bar ** 2] !== freCounter1[bar]){
return false
}
}
return true
}
arrayCompare([1,2,3,2,5], [9,1,4,4,11])
O(N) ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋ ํจ์๋ฅผ ์์ฑํ ์ ์๋ค. ์ด๋ฅผ ํตํด ์ฑ๋ฅ๋ฉด์์๋ ๋ฐ์ด๋ ํจ์๋ฅผ ์์ฑํ ์ ์๋ค.(์ฌ์ค ์ด๋ ๊ฒ ๊ฐ์์์ ๋ฐฐ์ ์ง๋ง, ๋๋ฌด ์ฝ๋๊ฐ ๋ณต์กํ๊ฑด ์๋๊ฐ ํ๋ ์๊ตฌ์ฌ์ ๋ ๋ค..)
4.3 ์๋๊ทธ๋จ
์๋๊ทธ๋จ์ด๋ ์ผ์ข ์ ๋ง์ฅ๋์ผ๋ก ์ด๋ ํ ๋จ์ด์ ๋ฌธ์๋ฅผ ์ฌ๋ฐฐ์ดํ์ฌ ๋ค๋ฅธ ๋ป์ ๊ฐ์ง๋ ๋ค๋ฅธ ๋จ์ด๋ก ๋ฐ๊พธ๋ ๊ฒ์ ๋งํ๋ค. ์ฆ, 'apple'์'elpap'์ฒ๋ผ ๋ฌผ๋ก ๋ง์ ๋์ง๋ง ๊ฐ์ ๋ฌธ์๋ค์ ๊ฐ์ง๊ณ ์์ง๋ง, ์์๊ฐ ๋ค๋ฅธ๊ฒ์ ์๋๊ทธ๋จ์ด๋ผ๊ณ ํ๋ค. ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ํ์ด์ผ ํ ๋ฌธ์ ๋ ๋ ๊ฐ์ ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ๋ ๋ฌธ์์ด์ด ์๋ก์ ์๋๊ทธ๋จ์ด๋ฉด ์ฐธ์ ์๋๊ทธ๋จ์ด ์๋๋ผ๋ฉด ๊ฑฐ์ง์ ๋ฐํํ๋ ํจ์๋ฅผ ๊ตฌ์ฑํ๋๊ฒ์ด ๋ชฉํ๋ค. ์ด๋ ํ์ฉํ ์ ์๋ ๊ฒ์ด ๋ฐ๋ก ๋ฌธ์์ด ์ธ๊ธฐ ํจํด์ด๋ค. ํจํด์ ์ด์ฉํด์ ์๋๊ทธ๋จ ํจ์๋ฅผ ๋ง๋ค์ด๋ณด์.
function anagram(string1,string2){
if(string1.length !== string2.length){
return false;
}
let strObject1 = {};
let strObject2 = {};
for(let i of string1){
strObject1[i] = (strObject1[i] || 0) + 1; // ๊ฐ์ฒด์์ ์ ๊ทผ ํ ํ๋กํผํฐ๊ฐ ์์ผ๋ฉด, undefined๋ฅผ ๋ฐํํ๋ฏ๋ก falsy๊ฐ ๋๊ณ false๊ฐ์ผ๋ก ์๋ฌต์ ํ์
๋ณํ๋์ด ๋ค์ ๊ฐ์ด ๋ฐํ๋จ
}
for(let i of string2){
strObject2[i] = (strObject2[i] || 0) + 1;
}
for(let i in strObject1){
if(!(i in strObject2)){
return false;
}
if(strObject2[i] !== strObject1[i]){
return false;
}
}
return true;
}
console.log(anagram("cat","bus")); // false
์ฆ, ์ ์ฝ๋์ฒ๋ผ ๋ฌธ์์ด์ด๋ ๋ฐฐ์ด์์ ๋ค์ด์๋ ๊ฐ๋ค์ด ๋ช ๊ฐ ์๋์ง ์นด์ดํธํ์ฌ ๊ฐ์ฒด๋ก ๋ง๋ค๊ณ ๋น๊ตํ๋๊ฒ ๋น๋ ์ ์ธ๊ธฐ ํจํด์ด๋ค. ๋ฐ๋ณต๋ฌธ์ ์ ์ฉํ์ฌ ๋ง๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ณ ์ค์ฒฉ๋์ง ์์ ๋ ๋ฒ์งธ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด์ผ ํ๋ค. ๊ทธ๋ ๊ฒ ๋ง๋ ๋ค๋ฉด O(N) ์๊ฐ ๋ณต์ก๋๋ฅผ ์ ์งํ ์ ์๋ค.
๋ค์ ๋งํด ์ฒซ ๋ฒ์งธ ์ ๋ ฅ๋ฐ์ ๊ฐ์ ์ธ๋ถํํ์ฌ ๊ฐ์ฒด์ ๊ฐ ๋ฌธ์ ๋๋ ์์์ ๊ฐ์๋ฅผ ์นด์ดํธํด์ ํ๋กํผํฐ๋ก ๋ง๋ค๊ณ , ๋ ๋ฒ์งธ ๊ฐ๊ณผ ๋น๊ตํด ๊ฐ๋ฉด์ ํ๋ ํ๋ ์ง์๋๊ฐ๋ฉด์ ๋น๊ตํ๋๊ฒ์ด ๋ฐ๋ก ๋น๋์ ์ธ๊ธฐ ํจํด ๋ฐฉ๋ฒ์ด๋ค. ์ด๋ฌํ ๋น๋์ ์ธ๊ธฐ ํจํด์ ์ซ์๊ฐ ๊ฐ์ ์ซ์๋ก๋ง ๊ตฌ์ฑ๋์ด ์๊ณ , ์์๋ง ๋ค๋ฅธ์ง ํ์ธํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ฑ์ ์์ฉ์ด ๊ฐ๋ฅํ ํจํด์ด๋ค. ์ฆ ๋ ๊ฐ์ ๋น๊ตํ ๋ ๋น๊ต๊ฐ ์ฉ์ดํ๋ค.
4.4 ๋ค์ค ํฌ์ธํฐ ํจํด (๊ณต์์ ์ธ ์ด๋ฆ์ด ์๋ ํจํด์ด๋ค)
์ด ํจํด์ ์ ์๋ ์ธ๋ฑ์ค๋ ์์น์ ํด๋นํ๋ ํฌ์ธํฐ๋ฅผ ๋ง๋ ๋ค์ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ค๊ฐ ์ง์ ์์๋ถํฐ ์์ ์ง์ ์ด๋ ๋ ์ง์ , ๋๋ ์์ชฝ ์ง์ ์ ํฅํด ์ด๋์ํค๋ ๊ฒ์ด๋ค. ํต์ฌ์ ๋ ๊ฐ์ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด, ์ ๋ ฌ๋ ๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ์ sumZero ํจ์๋ฅผ ๋ง๋ ๋ค๊ณ ํด๋ณด์. ์ด ํจ์๋ ํฉ๊ณ๊ฐ 0์ธ ์ฒซ ๋ฒ์งธ ์ ์ฆ, ํ ์ซ์๋ฅผ ๊ฐ์ ธ์ ๋ค๋ฅธ ์ซ์์ ๋ํ๋ฉด 0์ด ๋๋ ํ ์์ ์ฐพ๋ ํจ์์ด๋ค. ์ฃผ์ํด์ผ ํ ์ ์ ์ ๋ ฌ๋ ๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ์์ผ ํ๋ฉฐ, ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ด ์์ด์ผ ํ๋ค.
ex)
[-3, -2, -1, 0, 1, 2, 3] -> [-3, 3]์ ๋ฐํํจ
[-2, 0, 1, 3] -> undefined๋ฅผ ๋ฐํํจ(ํฉ์ด 0์ธ ์์ด ์์ผ๋ฏ๋ก)
ํจํด์ ์ฌ์ฉํ์ง ์๊ณ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์.
function sumZero(array){
for(let i = 0; i < array.length; i++){
for(let j = i+1 ; j < array.length; j++){
if(array[i] + array[j] === 0){
return [array[i], array[j]];
}
}
}
}
์ ์ฝ๋๋ ๋ฐ๋ณต๋ฌธ์ ์ค์ฒฉํด์ ์ฌ์ฉํ์ฌ O(N^2)์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋ ํจ์๊ฐ ๋๋ค. ์ฆ, ํ๋์ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ชจ๋ ์์๋ค์ ํ๋ ํ๋ ๋ค ๋น๊ตํ๊ฒ ๋๋ค.
๋ค์ค ํฌ์ธํฐ ํจํด์ ์ ์ฉํด์ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์.
function sumZero(array){
let left = 0;
let right = array.length - 1;
while(left < right){
let sum = array[left] + array[right];
if(sum === 0){
return [array[left], array[right]];
} else if(sum > 0){
right--;
} else {
left++;
}
}
}
์์ ๋ค์ค ํฌ์ธํฐ ํจํด์ ์ด์ฉํ๋ฉด O(N)์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค. ์ฆ ๋ ๊ฐ์ ํฌ์ธํฐ๋ฅผ ๋ง๋ค์ด์ ๋ ๊ฐ์ ํฉ์ด ์๋ณด๋ค ์๋ค๋ฉด ์ผ์ชฝ ํฌ์ธํฐ๋ฅผ ํ ์นธ ์์ง์ด๊ณ , ๋ ๊ฐ์ ํฉ์ด 0๋ณด๋ค ํฌ๋ค๋ฉด ์ค๋ฅธ์ชฝ ํฌ์ธํฐ๋ฅผ ์์ผ๋ก ์ด๋ํ๋ฉด์ ๋ ์์์ ํฉ์ด 0์ธ ๋ฐฐ์ด์ ๋ฐํํ๋ค.
4.5 Sliding Window ํจํด ๊ธฐ์ค์ ๊ฐ ์ด๋ ๋ฐฐ์ด ํจํด
์ฌ๋ผ์ด๋ฉ ์๋์ฐ ํจํด์ ๋จ์ผ ๋ณ์, ํ์ ๋ฐฐ์ด, ๋๋ ํ์ํ ๊ฒฝ์ฐ ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์๋์ฐ(์ฐฝ๋ฌธ)์ ์๋์ํค๋ฉฐ ํด๋น ๋ฐ์ดํฐ์ ํ์ ์งํฉ์ ์ฐพ๋ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค.(์์ ์์น์์ ์์ํ๋ฉด ๋ณดํต ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋, ๋ฐ๋๋ก๋ ๊ฐ๋ฅํ๋ค)
ex)๊ฐ์ฅ ๊ธด ์ํ์ค๋ฅผ ์ฐพ์๋ผ "hellomyworld" -> "hel/lomyw/orld" -> "lomyw"๊ฐ ๊ฐ์ฅ ๊ธด ์ํ์์ด๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์ ์ ์ฉํ๊ธฐ ์ ์ฉํ ํจํด์ด ๋ฐ๋ก ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ํจํด์ด๋ค.
์์ ๋ฌธ์ ) ๋ฐฐ์ด์์ ์กฐ๊ฑด์ ๋ง๋ ํฉ์ด ๊ฐ์ฅ ํฐ ์ํ์ค์ ํฉ์ ๋ฌด์์ธ๊ฐ?
ex) maxSum([1, 2, 5, 2, 8, 1, 5], 2) -> 10์ด๋ค(2๊ฐ์ ์ฐ์ํ๋ ์์๋ค ์ค ๊ฐ์ฅ ํฉ์ด ํฐ ์์์ ํฉ์ ๋ฐํํ๋ ํจ์๋ฅผ ํธ์ถ ํจ)
ํจํด์ ์ฌ์ฉํ์ง ์๊ณ ํจ์๋ฅผ ๋ง๋ค์ด ๋ณด์.
function maxSum(array, number) {
if ( number > array.length){
return null;
}
var max = -Infinity;
for (let i = 0; i < array.length - number + 1; i ++){
temp = 0;
for (let j = 0; j < number; j++){
temp += array[i + j];
}
if (temp > max) {
max = temp;
}
}
return max;
}
O(N^2) ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋ ํจ์๋ฅผ ํตํด ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.(๋ฐ๋ณต๋ฌธ ์ค์ฒฉ ์ฌ์ฉ)
์ด๋ฒ์๋ ํจํด์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ๋ณด์.
function maxSum(array, number){
let max = 0;
let temp = 0;
if (array.length < number) return null;
for (let i = 0; i < number; i++) {
max += array[i];
}
temp = max;
for (let i = number; i < array.length; i++) {
temp = temp - array[i - number] + array[i];
max = Math.max(max, temp);
}
return max;
}
ํจํด์ ์ฌ์ฉํ์ฌ O(N) ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
4.6 Divide and Conquer ๋ถํ ๊ณผ ์ ๋ณต (๊ณต์ํ๋ ์ด๋ฆ์ด๋ค)
์ด ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ๋ก ๋ฐฐ์ด์ด๋ ๋ฌธ์์ด ๊ฐ์ ํฐ ๊ท๋ชจ์ ๋ฐ์ดํฐ์ ์ ์ฒ๋ฆฌํ๋ค. ๋ฐ๋ก ์ด๋ค ํจํด์ธ์ง ์์ ๋ฅผ ํตํด ํ์ธํด ๋ณด์.
์์ ) indexSearch([1, 2, 3, 4, 5, 6], 4) // 3๋ฐํ (์์์ธ 4๊ฐ ์์นํ๋ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ฐํํ๋ ํจ์๋ฅผ ํธ์ถํ์)
๋ถํ ๊ณผ ์ ๋ณต ํจํด์ ์ฌ์ฉํ์ง ์๊ณ ํจ์๋ฅผ ๋ง๋ค์ด ๋ณด์.
function indexSearch(array, foo){
for(let i = 0; i < array.length; i++){
if(array[i] === foo){
return i;
}
}
return -1;
}
function indexSearch(array, foo) {
let min = 0;
let max = array.length - 1;
while (min <= max) {
let mid = Math.floor((min + max) / 2);
let currentEle = array[mid];
if (array[mid] < foo) {
min = mid + 1;
}
else if (array[mid] > foo) {
max = mid - 1;
}
else {
return mid;
}
}
return -1;
}
์์ ์ฝ๋๊ฐ ์๋๋๋ ๋ฐฉ๋ฒ์ ํ์ธํด ๋ณด์. ์๋ฅผ๋ค์ด [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]์ ๋ฐฐ์ด์์ 9๋ฅผ ์ฐพ์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํด์ผ ํ๋ค๋ฉด ์ค๊ฐ์ธ 5๋ฅผ ์ ํํ๊ณ ์ฐพ์์ผํ๋ 9๋ณด๋ค ์๊ธฐ ๋๋ฌธ์ 5๋ฅผ ํฌํจํ๋ ์๋ ์์๋ค์ ๋ค ๋ฌด์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋จธ์ง 6๋ถํฐ 10๊น์ง์ ํ์ ๋ฐฐ์ด์ ์ดํด๋ณธ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ 6์์ 10์ฌ์ด์ ์ค๊ฐ์ธ 7์ ์ ํํด์ ํ์ธํ๊ณ 9๋ณด๋ค ์๊ธฐ ๋๋ฌธ์ ํ์๋ฐฐ์ด์ 7์๋๋ก๋ ๋ค ๋ฌด์ํ๋ค. ๋๋จธ์ง์ ์ค๊ฐ์ธ 9๋ฅผ ์ ํํ๊ณ ํด๋น ๊ฐ์ ์ฐพ์๊ธฐ ๋๋ฌธ์ ํด๋น๊ฐ์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ฐํํ๋ค. ์ฆ, ํฐ ๋ฐฐ์ด์ด๋ ๋ฌธ์์ด์์ ํน์ ์์๋ ๋ฌธ์๋ฅผ ์ฐพ์ ๋ ํ๋ ํ๋ ๋ค ๋น๊ตํ๋๊ฒ์ด ์๋๋ผ ์ค๊ฐ ์ง์ ์ ์ฐพ์ ํ์์๋ ๋ถ๋ถ์ ๋ฌด์ํ๊ณ ๋น๊ตํ๊ณ , ๋ ๋๋จธ์ง ํ์๋ฐฐ์ด ๋๋ ๋ฌธ์์ด์์ ์ค๊ฐ ์ง์ ์ ์ ํํด์ ๋น๊ตํ์ฌ ์ํ๋ ์์ ๋๋ ๋ฌธ์์๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค. ํ ๋ง๋๋ก ํฐ ๋ฐ์ดํฐ์ ์ ์ทจํด ์์ ํ์์ ์ผ๋ก ๋ถํ ํ์ฌ ์ํ๋ ๊ฐ์ ์ฐพ๋ ๊ฒ์ด๋ค.
'๐ Language & CS knowledge > Algorithm & Data structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
06 ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ (0) | 2022.08.05 |
---|---|
05 ์ฌ๊ท (0) | 2022.08.04 |
03 ๋ฌธ์ ํด๊ฒฐ ์ ๊ทผ๋ฐฉ๋ฒ (0) | 2022.08.04 |
02 ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด์ ์ฑ๋ฅ ํ๊ฐ (0) | 2022.08.01 |
01 ๋น ์ค ํ๊ธฐ๋ฒ(Big O) (0) | 2022.08.01 |