์๊ณ ๋ฆฌ์ฆ
-
๐๏ธ ์๋ฃ๊ตฌ์กฐ ๊ณต๋ถํ๊ธฐ 4 | ๋ณํฉ ์ ๋ ฌ(merge sort)data structure 2021. 1. 19. 09:05
๋ณํฉ ์ ๋ ฌ(merge sort) ๋ณํฉ ์ ๋ ฌ ๋๋ ํฉ๋ณ ์ ๋ ฌ์ ๋น๊ต ๊ธฐ๋ฐ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์๋ฅผ ๋ค์ด, ์ ๋ ฌ๋ ๋ ๊ฐ์ ๋ฐฐ์ด์ด ์๋ค๊ณ ํ์. let arr1 = [4,6,7,8]; let arr2 = [1,5,6,7]; let result = []; ์ ๋ ฌ๋ ๋ ๋ฐฐ์ด์ ํ๋์ ๋ฐฐ์ด๋ก ํฉ์น๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผํ ๊น? ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ์ด๋ฏธ ๋ ๋ฐฐ์ด์ด ์ ๋ ฌ๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ์์ ๊ฐ๋ผ๋ฆฌ ๋น๊ต๋ฅผ ํ๋ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ๋งํ๋ ๊ฐ์ฅ ์์ ๊ฐ์ 0๋ฒ์งธ ์ธ๋ฑ์ค์ ์์นํ ์์์ด๋ค. ์ฒ์์๋ 4์ 1์ ๋น๊ตํ๋๋ฐ 1์ด 4๋ณด๋ค ์์ผ๋ฏ๋ก result์ 1์ด ๋จผ์ ๋ค์ด๊ฐ๊ฒ ๋๋ค. 4 > 1 result.push(1); ๊ทธ ๋ค์ ๋น๊ต๋์์ 4์ 1์ ๋ค์ ์ซ์์ธ 5์ด๋ค. 4 < 5 result.push(4); ๋ ์์ ..
-
๐๏ธ ์๊ณ ๋ฆฌ์ฆ | ์ฌ๊ท ํจ์(Recursion), ํผ๋ณด๋์น ์algorithm 2020. 7. 23. 18:26
what is ์ฌ๊ท ํจ์ ๋ง์ ์ฌ๋๋ค์ด ๋ง์ง์์ ๋ฐฅ์ ๋จน๊ธฐ ์ํด ์ค์ ์ฐ๋ค. ํ์ฌ ๋๋ ์ค์ ๋งจ ๋์ ์์นํ๊ณ ์๋ค. ํ์ฌ ๋ด๊ฐ ๋ช ๋ฒ์งธ๋ก ๋๊ธฐํ๊ณ ์๋์ง ์๊ณ ์ถ๋ค๋ฉด ์ ์ฌ๋์๊ฒ ๋ช ๋ฒ์งธ์ธ์ง ๋ฌผ์ด๋ณด๋ฉด ๋๋ค. ๋ง์ฝ ์ ์ฌ๋์ด ๋ชจ๋ฅธ๋ค๋ฉด ์ ์ฌ๋์ ์์ ์ ์ ์ฌ๋์๊ฒ ๋ฌผ์ด๋ณด๊ณ ์ด ๊ณผ์ ์ด ๋ฐ๋ณต๋ ๊ฒ์ด๋ค(์ฒซ ๋ฒ์งธ ๋๊ธฐ์๊น์ง). ๋๋ ์ ์ฌ๋์๊ฒ '์ ๋ 5๋ฒ์ด์์' ๋ผ๋ ๋๋ต์ ๋ค์๋ค. ๊ทธ๋ ๋ค๋ฉด ๋์ ๋๊ธฐ๋ฒํธ๋ 5 + 1 = 6๋ฒ ์ด๋ค. ๊ทธ ๊ณผ์ ์ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์๋์ ๊ฐ๋ค. function getMyPositionInLine(person){ if (person.nextInLine == null){ //์์ฌ๋ ์กด์ฌ x return 1; } return 1 + getMyPositionInLine(person.ne..