Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ksundong/algorithm-solution
๐ฅ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด
https://github.com/ksundong/algorithm-solution
codingtest leetcode programmers
Last synced: 3 months ago
JSON representation
๐ฅ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด
- Host: GitHub
- URL: https://github.com/ksundong/algorithm-solution
- Owner: ksundong
- Created: 2020-01-08T02:06:59.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-11-14T17:17:12.000Z (about 3 years ago)
- Last Synced: 2024-05-23T04:03:41.637Z (8 months ago)
- Topics: codingtest, leetcode, programmers
- Language: Java
- Homepage:
- Size: 991 KB
- Stars: 10
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# algorithm-solution
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด๋ฅผ ์ฌ๋ฆฌ๋ ์ ์ฅ์
## [ํ๋ก๊ทธ๋๋จธ์ค](https://programmers.co.kr/)
1. [์์ฃผํ์ง ๋ชปํ ์ ์](https://programmers.co.kr/learn/courses/30/lessons/42576)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/incompleteplayer/Solution.java)
2. [๋ฌธ์์ด ์์ถ](https://programmers.co.kr/learn/courses/30/lessons/60057)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/compressstring/Solution.java)
- ํด์๋ฅผ ์ฌ์ฉํด๋ด์ผ ์ด์ ์ด ์๋ ๋ฏ ์ถ์ด ํด์๋ ์ฌ์ฉํ์ง ์์๋ค.
3. [K๋ฒ์งธ์](https://programmers.co.kr/learn/courses/30/lessons/42748)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/19427fc431bf5b53fdea06dd4ced059383810885/src/main/java/dev/idion/programmers/kthnumber/Solution.java)
- ๋ค๋ฅธ ์ฌ๋ ํ์ด๋ฅผ ํ์ธํด๋ณด๋ quick sort๋ฅผ ์ง์ ๊ตฌํํ๋ ๊ฒฝ์ฐ๋ ์์๋ค.
4. [๊ฐ์ฅ ํฐ ์](https://programmers.co.kr/learn/courses/30/lessons/42746)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/biggestnumber/Solution.java)
- String์ ํฉ์น๊ฒ์ ๋น๊ตํ๋ ๊ฒ vs ๊ฐ์ string์ 4๋ฒ ๋ฐ๋ณตํ ํ 4์๋ฆฌ๊น์ง ์๋ฅด๋ ๊ฒ
- ์์ธ ์ฌํญ์ด ์ข ๋ง๋ค. 0์ด๋ 12, 121 ๊ฐ์๊ฒ.
- ์ํธ ๋ฉ์๋๋ฅผ ํ์ฉํ๋ Comparator๋ฅผ ์ ํ์ฉํ๋ฉด ์ ๋ ฌ๋ฌธ์ ๋ฅผ ์ข ๋ ๋น ๋ฅด๊ฒ ํ ์ ์์ ๊ฒ ๊ฐ๋ค.
5. [์์ฅ](https://programmers.co.kr/learn/courses/30/lessons/42578)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/camouflage/Solution.java)
- ์ด๋ฆ์ด ๊ฒน์น๋ ์์์ด ์๋ค๋ ๊ฒ์ด ํํธ๊ณ , ๋๋ฒ์งธ๋ ๋ถ์๋ณ๋ก ์์ ๊ฑฐ๋, ํ๋๋ง ์ ๊ฑฐ๋์ ๊ฒฝ์ฐ์ ์๋ผ๋๊ฒ ํํธ์๋ค.
- ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ์ฐํด๋ณด๋ฉด ์์์ ๊ฐ์ + 1(์์ ๋ ๊ฒฝ์ฐ)๋ฅผ ๊ฐ๊ฐ ๊ณฑํด์ค ํ, ๋ชจ๋ ์์ ๋ ๊ฒฝ์ฐ์ ์์ธ 1์ ๋นผ์ฃผ๋ฉด ๋๋ค.
6. [์ ํ๋ฒํธ ๋ชฉ๋ก](https://programmers.co.kr/learn/courses/30/lessons/42577)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/phonenumberlist/Solution.java)
- ์ด์ค for๋ฌธ์ ์ด์ฉํ์ฌ ํ์๋ค.
- ์ฌ์ ์ ์ ๋ ฌ์ ํ๊ณ ๋ค์ ๊ฒ์ ์์ ๊ฒ์ด ํฌํจ๋์ด์๋์ง ํ์ธํ๋ค.(Stringํํ๋ ์ฌ์ ์ ์ ๋ ฌ์ ํ๊ธฐ ๋๋ฌธ์)
- ํด์๋ฅผ ์ ์ฉํ ํ์ด๋ฅผ ๋ณด์๋๋ฐ 2์ค for๋ฌธ, for๋ฌธ ๊ตฌ์กฐ๋ก ๋ ๋ณต์กํด์ง๋ ๊ฒฝํฅ์ด ์์ด ํ์ด์์ ์ ์ธํ์๋ค.
7. [์ฒด์ก๋ณต](https://programmers.co.kr/learn/courses/30/lessons/42862)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/gymsuit/Solution.java)
- ์ผ๋จ Test Case๋ฅผ ๋ง๋ค์๋ค.
- ์ผ๋จ ๋ฐฐ์ด์ length๊ฐ์ ๋นผ๊ณ ๋ํด๋ณด์๋ค. (test 1, 3 ์คํจ)
- ๋ง๋ค์ด ๋ Test Case๋ฅผ ๋ชจ๋ ๋ง์กฑํ๋ ์ฝ๋๋ฅผ ์์ฑํ์๋ค.
- ์์ธ ์ํฉ์ด ์์ด์(์กฐ๊ฑด์ ์ ๋๋ก ์์ฝ์ด์) ์ฝ๋๋ฅผ ์์ ํ๋ค. (๋จผ์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋น๊ต)
8. [2016๋ ](https://programmers.co.kr/learn/courses/30/lessons/12901)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/year2016/Solution.java)
- Test Case๋ฅผ ํ๋ ๋ง๋ค์๋ค.
- ๋๋ฌด ์ฌ์ ๋ค. ์ญ์ CodeSquad Java Playground!
- https://www.inflearn.com/course/java-codesquad/dashboard
9. [๊ฐ์ด๋ฐ ๊ธ์ ๊ฐ์ ธ์ค๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12903)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/getmiddlecharacter/Solution.java)
- Test Case๋ฅผ ๊ฐ์ ธ์์ ๋ง๋ค์๋ค.
- ์ญ์ ๋๋ฌด ์ฌ์ ๋ค.
- ์ข ๋ ์งง์ ์ฝ๋๋ฅผ ๋ง๋ค๊ธฐ ์ํด์, ์ง์, ํ์ ๋ชจ๋ ํต์ฉ๋๋ ์ฝ๋๋ฅผ ์ง๊ธฐ์ํด ๋ ธ๋ ฅํ๋ค.
10. [๊ฐ์ ์ซ์๋ ์ซ์ด](https://programmers.co.kr/learn/courses/30/lessons/12906)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/7229adab2d/src/main/java/dev/idion/programmers/noduplicatenumber/Solution.java)
- ํ์ด๋ ํ์ง๋ง ๊ณต๊ฐ๋ณต์ก๋๊ฐ ๋์์ง๋ ๋จ์ ์ด ์๋ค.
- Arrays.copyOf๋ฅผ ์ฌ์ฉํ์ง ์์๋๋ 0.5 ms๊ฐ ๋จ์ถ๋์๋ค.
11. [๋๋์ด ๋จ์ด์ง๋ ์ซ์ ๋ฐฐ์ด](https://programmers.co.kr/learn/courses/30/lessons/12910)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/dividingnumberarray/Solution.java)
- ๋ณ๋ก ๊น๊ฒ ์๊ฐํด๋ณด์ง ์์๋ ๋๋ ๋ฌธ์ ์๋ค.
12. [๋ ์ ์ ์ฌ์ด์ ํฉ](https://programmers.co.kr/learn/courses/30/lessons/12912)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/twointegersum/Solution.java)
- ๋ฑ์ฐจ์์ด์ ํฉ ๊ณต์์ ์ด์ฉํด์ ํ์๋ค.
- for๋ฌธ์ผ๋ก ํ๋ฉด ์ค๋๊ฑธ๋ฆผ(ํต๊ณผ๋ ํจ...)
13. [๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12915)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/stringsortmyself/Solution.java)
- ์ข ์ฌ๋ฏธ์์ด ๋ณด์ด๋ ๋ฌธ์ ๋ค.
- comparator๋ฅผ ์ข ๋ ์ฌ๋ฐ๊ฒ ์ธ ์ ์์๋ค.
- ๊ฐ์ถ๋ฌธ์ !!
14. [๋ฌธ์์ด ๋ด p์ y์ ๊ฐ์](https://programmers.co.kr/learn/courses/30/lessons/12916)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/stringpandycount/Solution.java)
- uppercase๋ lowercase๋ฅผ ์ฌ์ฉํ๋ฉด ์๋๊ฐ ์ด๋ป๊ฒ ๋ณํ ์ง๋ ๊ณ ๋ฏผํด๋ด์ผ ํ ๊ฒ ๊ฐ๋ค.
- ๋ก์ง์ ๊ฐ๋จ!
15. [๋ฌธ์์ด ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12917)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/stringdescendingorder/Solution.java)
- ๋๋ค์์ผ๋ก ํ๋๋ฐ ๋๋ฌด ๋๋ฆฐ ๊ฒ ๊ฐ๋ค.
- StringBuilder์ reverse ๋ฉ์๋๊ฐ ์๋ค๋ ๊ฒ์ ์ฒ์ ์์๋ค.
16. [๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ ๊ธฐ๋ณธ](https://programmers.co.kr/learn/courses/30/lessons/12918)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/basicstringcontrol/Solution.java)
- ์ฒ์์ Pattern, Matcher๋ฅผ ์ด์ฉํด์ ํ์๋๋ฐ, String์ matches๋ผ๋ ๋ฉ์๋๊ฐ ์ ๊ณต๋์ด์ ์์ ํ๋ค.
- ์์ฒญ ์งง๊ฒ ๋ฐ๊พธ์๋ค. ์ ๊ท์์ผ๋ก ํ๋ฉด ์์ฒญ ์งง๋ค!
17. [์์ธ์์ ๊น์๋ฐฉ ์ฐพ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12919)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/kimseobang/Solution.java)
- ๋ค๋ฅธ ์ฌ๋๋ ๋น์ทํ๊ฒ ํ์ด์... ์ฐธ๊ณ ํ ๊ฒ์ด ์์๋ค.
18. [์์ ์ฐพ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12921)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/primenumber/Solution.java)
- ์ฒ์์ n^2๋ก ํ์๋๋ฐ ์ซ์ ๋ฒ์๊ฐ ๋ฐฑ๋ง์ด์ด์ ์๋๋ฅผ ๊ฐ์ ํ ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด์์ต๋๋ค.
- ์ ๊ณฑ๊ทผ๊น์ง loop๋ฅผ ๋๋ฆฐ๋ค๋ ๋ด์ฉ์ ๊ทธ ์ด์์ ์ ๋ ๋๋์ด ๋จ์ด์ง ์ ์๋ค๋ ๋ป์ด์์ต๋๋ค.
- ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ผ๋ ํ์ด ๋ฐฉ์๋ ์์ด ์ ์ฉํด๋ณด์์ต๋๋ค.
19. [์๋ฐ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์?](https://programmers.co.kr/learn/courses/30/lessons/12922)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/watermelon/Solution.java)
- ์์ ์ ํ์๋ ๋ฌธ์ ๋ฐ, ๋๊ฐ์ด ํ์๋ค..?
- ์๋ฐ์ ๋ง์ ์ ๋ ฅํด์ substring์ผ๋ก ํผ ์ฌ๋์ด ์๋๋ฐ, ์ ๋ง ๋๋จํ๋ค ใ ใ ใ
20. [๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12925)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/parseint/Solution.java)
- ์... ๋ฌธ์ ์ถ์ ์๋๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์๋ชป์ ๋ ฅ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค๊ณ ํด์ parseInt๋ฅผ ์ฌ์ฉํ์๋ค.
21. [์์ ์ํธ](https://programmers.co.kr/learn/courses/30/lessons/12926)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/caesarcipher/Solution.java)
- char ํ์ ๋ํด์ ๊น๊ฒ ์๊ฐํ๊ฒ ๋ง๋๋ ๋ฌธ์ ์๋ค.
- ๋์ค์ ํ ๋ฒ ๋ ํ์ด๋ณด๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค.
22. [์ฝ์์ ํฉ](https://programmers.co.kr/learn/courses/30/lessons/12928)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/sumofmeasure/Solution.java)
- ์ฝ์๋ ์๊ฐํด๋ณด๋ 2๋ก ๋๋๋ฉด ๋ ์ ์ loop๋ฅผ ๋ ์ ์์๋ค.
- ๋์ค์ ๋ค์ ํ์ด๋ด์ผ๊ฒ ๋ค.
23. [์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12930)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/weirdstring/Solution.java)
- ๋ฌธ์ ์ ์กฐ๊ฑด์ ์ข ๋ ์ฝ๋ ์ต๊ด์ ๋ค์ฌ์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค. (์ฒ์ ์ ์ถํ ๊ฑด ๋จ์ด๋จ์๋ก ์ธ๋๊ฑธ ์์ฝ๊ณ ํ์๋ค.)
- ๊ฐ๊ธ์ ์ด๋ฉด split์ ์ด์ฉํ๊ธฐ๋ณด๋ค๋ character array๋ก ๊ฐ๋ฅํ ๋ฌธ์ ์ ๊ฒฝ์ฐ char array๋ฅผ ์ฐ๋๊ฒ ๋์ ๊ฒ ๊ฐ๋ค.
24. [์๋ฆฟ์ ๋ํ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12931)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/digitplus/Solution.java)
- ํจ์ ์ธ ๊ฒฝ์ฐ๋ ์๊ณ , ๊ทธ๋ฅ ์ซ์์ ์๋ฆฟ์๋ฅผ ์ด๋ป๊ฒ ๋ค๋ฃจ๋์ง ์๊ฐํ๋ ๋ฌธ์ ๋ผ๊ณ ์๊ฐ๋๋ค.
25. [์์ฐ์ ๋ค์ง์ด ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12932https://programmers.co.kr/learn/courses/30/lessons/12932)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/naturalnumberarray/Solution.java)
- ๊ตณ์ด string์ผ๋ก ๋ง๋ค ํ์๊ฐ ์๋ ์ถ์ด์ while loop๋ฅผ ๋ ๋ฒ ์ฌ์ฉํด์ ํ์๋ค.
26. [์ ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12933)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/integerdesc/Solution.java)
- ๊ธฐ์กด ํ์ด๋ intํ์ผ๋ก ๋ฐ์์ ์ฐธ๊ณ ํ ๋งํ ๊ฒ์ด ์์๋ค.
- Lambda์ Stream์ ์ฐ๋ ํ์ด๋ ๋ชจ๋ฅด๊ฒ ๋ค. ํจ์ํ์ด ํ์ํ ๋ถ๋ถ์ธ๊ฐ ์ถ๋ค.
- String์ผ๋ก ๋ณํํด์ Long.parseLong์ ์ฌ์ฉํ๋ ํ์ด๋ ์ข์ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ ... ์๋๋ ์ ๋์ค๋??
27. [์ ์ ์ ๊ณฑ๊ทผ ํ๋ณ](https://programmers.co.kr/learn/courses/30/lessons/12934)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/integersquareroot/Solution.java)
- Math.sqrt ์์ด ํ๋ ๋ฐฉ๋ฒ์ ์์๊น? ๊ณ ๋ฏผํ๋๋ฐ for loop๋์์ผ ํ ๊ฒ ๊ฐ์์ ๋ณ๋ก ํจ์จ์ด ์ข์ง ์์ ๊ฒ ๊ฐ๋ค.
- Math.sqrt๋ฅผ ๊น๋ดค๋๋ฐ, Note that hardware sqrt instructions ๋ผ๊ณ ํ๋ ๊ฒ์ผ๋ก ๋ณด์ ์ด๊ฒ ์ ์ผ ํจ์จ์ ์ธ ๊ฒ ๊ฐ๋ค.
- Math.pow๋ฅผ ์ฐ๊ธฐ๋ณด๋จ ๊ทธ๋ฅ ๊ณฑํด์ ๋น๊ต๋ฅผ ํด์ฃผ์๋ค.
28. [์ ์ผ ์์ ์ ์ ๊ฑฐํ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12935)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/deleteminnum/Solution.java)
- O(n)์ผ๋ก ํ์๋ค. Stream์ ์จ์ ํผ ์ฌ๋๋ ์์๋๋ฐ, ๊ฒฐ๊ตญ ๋๋ฆฌ๋๋ผ...
- ์ต์๊ฐ์ ์ฐพ๊ณ , ๊ทธ๊ฒ๋ง ๋นผ๊ณ ๋ฃ์ด์ฃผ๋๊ฒ ๊ฐ์ฅ ๋น ๋ฅผ ๊ฒ ๊ฐ์๋ฐ, ๋ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ด ์์๊น?
29. [์ง์์ ํ์](https://programmers.co.kr/learn/courses/30/lessons/12937)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/evenandodd/Solution.java)
- ๊ฐ๋จํ ๋ฌธ์ ๋ฐ, ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ํ๋ฉด ๋ ์งง๊ฒ ํ ์ ์๋์ง๋ ๊ณ ๋ฏผํด๋ณด๋ ๊ฒ ์ข์ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค.
- ์ ์ผํญ์ฐ์ฐ์๋ฅผ ์ธ ์๊ฐ์ ์ํ์ง?
30. [์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์](https://programmers.co.kr/learn/courses/30/lessons/12940)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/gcfandlcm/Solution.java)
- ์ฌ๊ท๋ก ํธ๋ ํ์ด๋ ์๊ฐํ์ง ๋ชปํ๋๋ฐ, ์ํ์ ์ผ๋ก ์๊ฐํ ๊ฒ์ธ์ง ๊ถ๊ธํ๋ค.
- ์ต๋๊ณต์ฝ์ ์ต์๊ณต๋ฐฐ์๋ฅผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ํธ๋ ์๋นํ ๊น๋ค๋กญ๋ค๊ณ ๋๊ปด์ก๋ค.
31. [์ฝ๋ผ์ธ ์ถ์ธก](https://programmers.co.kr/learn/courses/30/lessons/12943)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/collatzconjecture/Solution.java)
- ์ผํญ์ฐ์ฐ์๋ฅผ ์๋์ ์ผ๋ก ์ฌ์ฉํด๋ณด์๋ค. if-else์ ๋นํด ๊ฐ๋ ์ฑ์ด ์ข์์ก๋ค.
- while Loop๋ for Loop๋์ ๊ด์ ์ฐจ์ด๋ ๋ฌธ์ ์ ์กฐ๊ฑด์ ์ด๋ป๊ฒ ํด์ํ๋๋์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒ ๊ฐ๋ค. ๋๊ฐ์ ๊ฒฝ์ฐ์ 1์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ์ค์ํ๋ค ํ๋จํ๋ค.
- ํ ์คํธ ์ผ์ด์ค๊ฐ ์น์ ํด์ ์ค๋ฅ๋ฅผ ์ฌ์ ์ ์ ์ ์์๋ค. ์ด ๋ฌธ์ ๋ ์๋ฃํ๋ ์ ๊ฒฝ์จ์ผํจ์ ์๋ ค์ฃผ๋๊น ์ข์ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค.
32. [ํ๊ท ๊ตฌํ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12944)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/getaverage/Solution.java)
- ๋ณ๋ก ์ข์ง ์์ ๋ฌธ์
33. [ํ์ค๋ ์](https://programmers.co.kr/learn/courses/30/lessons/12947)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/harshadnumber/Solution.java)
- ์ซ์๋ฅผ ํ ์๋ฆฌ์ฉ ๋ถ๋ฆฌํ๋ ๊ธฐ๋ฒ๋ง๊ณ ๋ ๊ทธ๋ฅ ์ข์ง์์ ๋ฌธ์ ...
34. [ํธ๋ํฐ ๋ฒํธ ๊ฐ๋ฆฌ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12948)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/maskingphonenumber/Solution.java)
- ์ ๊ท์์ ์ฌ์ฉํ๋ ค๊ณ ํ๋๋ฐ, ๋นํจ์จ์ ์ธ ๊ฒ ๊ฐ์์ ๊ทธ๋ฅ char๋ฐฐ์ด๋ก ๋ง๋ค์ด์ ํ์๋ค.
35. [ํ๋ ฌ์ ๋ง์ ](https://programmers.co.kr/learn/courses/30/lessons/12950)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/sumofprocession/Solution.java)
- ๋ฌธ์ ์กฐ๊ฑด์ด ๋ช ํํ์ง ์์์ ๋ณ๋ก์๋ค.
- ์ ๊ธฐํ๊ฑด, length2๋ฅผ ๋ฏธ๋ฆฌ ์ ์ธํด ์ฃผ๋๊ฒ ๋ ๋๋ฆฌ๋ค๋์ ... ํธ์ฐจ๊ฐ ์ด๋์ ๋ ์๊ฒ ์ง๋ง, ๋ง์ง๋ง ์กฐ๊ฑด์ ๊ฒฝ์ฐ 5ms ์ฐจ์ด๊ฐ ๋ฌ๋ค.
36. [x๋งํผ ๊ฐ๊ฒฉ์ด ์๋ n๊ฐ์ ์ซ์](https://programmers.co.kr/learn/courses/30/lessons/12954)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/xdistancenumbers/Solution.java)
- ์๊ฐํ ์ฌ์ง๊ฐ ๋ณ๋ก ์๋ ๋ฌธ์ ์๋ค.
37. [์ง์ฌ๊ฐํ ๋ณ์ฐ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/12969)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/makerectangle/Solution.java)
- ์ด๋ฐ ๋ฌธ์ ๊ฐ ์ ์์๊น... ํ ์คํธ์ผ์ด์ค๋ ๊ท์ฐฎ์์ ๋ง๋ค์ง ์์๋ค.
38. [์์ฐ](https://programmers.co.kr/learn/courses/30/lessons/12982)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/budget/Solution.java)
- ๊ด์ฐฎ์ ๋ฌธ์ ์๋ค. nlogn์ด ์ต์ ์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
39. [๋น๋ฐ์ง๋](https://programmers.co.kr/learn/courses/30/lessons/17681)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/secretmap/Solution.java)
- ์ถ๋ ฅ์ ๋ฌธ์ ๊ฐ ์์ด์ ํ ์คํธ์ผ์ด์ค๊ฐ ์ ๋๋ก ๋์ํ์ง ์์๋ค. ๋๋ถ์ ๊ณต๋ฐฑ์ด ์ค๋ณต๋๋ฉด ์ ๊ฑฐํ๋ ์ฝ๋๋ฅผ ๋ฃ์ด์ผ ํ๋์ค ์๊ณ ๋ฌธ์ ๋ฅผ ๋ค์ ์ฝ์ด๋ดค๋ค.
- ๊ทธ๊ฑด ๋ ผ์ธ๋ก ์น๊ณ ๋ฌธ์ ์์ฒด๋ ๊ด์ฐฎ์๋ค. binaryString์ ์ฌ์ฉํ๋ ํ์ด๊ฐ ์์๋๋ฐ, ๋ด ํ์ด์ ์ฝ 10๋ฐฐ์ด์์ด ๊ฑธ๋ ธ๋ค. ์๋๋ฉด GC๊ฐ ๋์ํ๊ธฐ ๋๋ฌธ์ด๋ผ ์๊ฐํ๋ค.
- ์ฌ๊ทํจ์๋ก ํธ๋ ํ์ด๋ ์๋๋ฐ, ๊ด์ฐฎ์ ๊ฒ ๊ฐ๋ค. ์ผ๋จ ๋ฌธ์ ์กฐ๊ฑด ์์ฒด๊ฐ 16์๋ฆฌ๊น์ง ๋ฐ์ผ๋๊น...
- ๋นํธ์ฐ์ฐ, ๋นํธ ์ํํธ์ฐ์ฐ์ผ๋ก ํ์ดํ ๊ฒ์ ๋ดค๋๋ฐ, ์ ์์จ์ ๊ทธ๋ฐ๊ฐ ์ด๋ป๊ฒ ๋์ํ ์ง ์์ธก์ด ๋์ง ์์๋ค. ๋ ๊ณต๋ถํด์ผ๊ฒ ๋ค.
40. [์คํจ์จ](https://programmers.co.kr/learn/courses/30/lessons/42889)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/failurerate/Solution.java)
- ์ ์ํ๋ ค์ ํ์ด๋ฅผ ์ฐพ์๋ดค๋๋ฐ ๊ด์ฐฎ์ ํ์ด๊ฐ ์์ด์ ๋ค์ ํ์๋ค...
- 23, 24๋ฒ ์ผ์ด์ค์์ ์คํจํ๋๋ฐ ์ผ๋จ, ์ฌ๊ธฐ๊น์ง ํ ๊ฑธ ์ฌ๋ ค๋๋ค.
- double ํ์ผ๋ก ํ๋๋ ์ ๋๋ก ๋์ํ๋ค. overflow ๋ฌธ์ ์ผ๊น?
41. [๋คํธ ๊ฒ์](https://programmers.co.kr/learn/courses/30/lessons/17682)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/dartgame/Solution.java)
- ์ ๊ทํํ์์ผ๋ก ํ์ด๋ณด์๋ค.
- ์๋์๋ก๋ ๊ทธ๋ฃนํ์ด ์๋ผ์ ๊ฐ๊ฐ ์จ์ฃผ์๋ค.
- `find()`๋ฅผ ์จ์ค์ผ ํ๋๊ฑธ ์ฒ์ ์์๋ค. `group(num)` ์ด `num` ์ด 0์ด๋ฉด ์ ์ฒด ๋ค๊ฐ์ ธ์ค๋๊ฑฐ์๋ค.
- ์๊ฐ๋ณด๋จ ์ฝ๊ฒ ํ์ด๋ธ ๊ฒ ๊ฐ์๋ฐ, ๋์ค์ ํ๋ฉด ๋ ์ฝ๊ฒ ํ ์ ์์ง ์์๊น?
- flow ๋๋ฌธ์ ์ฝ๋๊ฐ ์ธ๋ก๋ก ๊ธธ์ด์ ธ์ ์ข ์ฌํ๋ค.
42. [๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ](https://programmers.co.kr/learn/courses/30/lessons/42583) {๋ค์ ํ์ด๋ณผ ๋ฌธ์ }
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/truckpassingbridge/Solution.java)
- ์ฌ๋ฌ ๋์ ํธ๋ญ์ด **์ผ์ฐจ์ ** ๋ค๋ฆฌ๋ฅผ **์ ํด์ง** ์์ผ๋ก ๊ฑด๋๋ ค ํ๋ค. => Queue ์๋ฃ๊ตฌ์กฐ
- ๋ชจ๋ ํธ๋ญ์ด ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ ค๋ฉด ์ต์ ๋ช ์ด๊ฐ ๊ฑธ๋ฆฌ๋์ง ์์์ผ ํ๋ค.
- ํธ๋ญ์ 1์ด์ 1๋งํผ ์์ง์ธ๋ค. ๋ค๋ฆฌ์ ๊ธธ์ด๋ bridgeLength ๊ฐ์ด๊ณ , ๋ฌด๊ฒ๋ weight๋งํผ ๊ฒฌ๋๋ค.
- ์ด ๋ฌธ์ ๋ ํ๋ฅผ ํ์ฉํ๋ ๋ฌธ์ ์ง๋ง, ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ํ์ด๋ณผ ๋ฌธ์ ์๋ค.
- ๋๋ ์ ๊ทผ์ ํ๋ง ์ฌ์ฉํด์ ์ ์ฅํ๊ณ ๊บผ๋ด๋ ๋ฐฉ์๋ง ์ฌ์ฉํ์๊ณ , ์๊ฐ์ ์ ํ ๊ณ ๋ คํ์ง ๋ชปํ๋ค.
- ๋๋ถ๋ถ์ ํ์ด๋ ์๊ฐ์ด๋ ์์ง์์ ๊ณ์ฐํ๊ณ , ์ด๋ฐ ๋ฐฉ์์ ์ ์๊ฐํ์ง ๋ชปํ๋ ๊ฒ ๊ฐ๋ค.
- [ํ๋ก๊ทธ๋๋จธ์ค ํ์ด](https://programmers.co.kr/learn/courses/30/lessons/42583/solution_groups?language=java)
- ๋ถ์กฑํจ์ ๋ง์ด ๋๋ ๋ฌธ์ ์๋ค. ์์ฃผ์์ฃผ ํ์ด๋ณด์.
43. [ํ๋ฆฐํฐ](https://programmers.co.kr/learn/courses/30/lessons/42587)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/printer/Solution.java)
- ์ฐ์ ์์ ํ๋ฅผ ์์ฉํ๋ ๋ฌธ์ ๊ฐ๋ค.
- ์ฐ์ ์์๊ฐ ๊ณ์ ๋ณ๊ฒฝ๋๋ ํฌ์ธํธ๋ฅผ ์ ์ก์ง ๋ชปํด์ ํ์ด๋ฅผ ๊ฒ์ํ๋ค.
- ๋์ค์ ๋ค์ ํ์ด๋ณด์.
44. [๊ธฐ๋ฅ๊ฐ๋ฐ](https://programmers.co.kr/learn/courses/30/lessons/42586)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/featuredevelop/Solution.java)
- ๋จผ์ ์์ ์ด ์์ํ ๊ฒฝ์ฐ ๋ค์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์ด ์๋ฃ๋๋๋ผ๋ ๋ฐฐํฌ๋์ง ์๋๋ค.
- ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ์ ๊ทผํ๋๋ ์๋นํ ์ ํ๋ ธ๋ค. 20๋ถ ์ข ๋๊ฒ ๊ฑธ๋ ธ๋?
- ๋๋ค์์ ์ ๊ทน ํ์ฉํ ํ์ด๋ ์ข์๋ณด์ธ๋ค.
- ๋์์ ์คํ์ ํ์ฉํ๋ ค๊ณ ๋ ธ๋ ฅํ๋ค. ๊ฒฐ๊ตญ Queue ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ LinkedList์ด๋ฏ๋ก iterator๋ ํ์ฉํด๋ณด์๋ค.
- ์๊ฐ์ ๊ฑฐ์ 2ms ๋ด์ธ๋ก ๊ฑธ๋ ธ๋ค. 0์ด ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ์์๋๋ฐ, ์์ธ์ฒ๋ฆฌ๊ฐ ์ข ์์ฝ๊ธด ํ๋ค.
45. [์ฃผ์๊ฐ๊ฒฉ](https://programmers.co.kr/learn/courses/30/lessons/42584)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/stockprice/Solution.java)
- ์ด์ ๊ฐ๊ฒฉ๊ณผ ๋ค์ ๊ฐ๊ฒฉ์ ๋น๊ตํ๋ฉด์ ์์์ง๋ฉด ์นด์ดํธ๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ์์ผ๋ก ๊ณ์ฐํด์ผํ ๊ฒ ๊ฐ๋ค.
- 100000๊ฐ๋ผ๋ฉด ์ต๋ n^2 ๊น์ง๋ง ๊ฐ๋ฅํ ๊ฒ ๊ฐ๋ค.
- ์คํ์ ์ฌ์ฉํด์ ํ์ด๋ณด๋ ค๊ณ ํ๋๋ฐ, ํ ์คํธ ์ผ์ด์ค๋ ํต๊ณผํ๋๋ฐ ๋ค๋ฅธ๊ฑด ํต๊ณผํ์ง ๋ชปํด์ ๊ทธ๋ฅ for loop๋ก ํด๊ฒฐํด๋ณด๋ ค๊ณ ํ๋ค.
- for loop๊ฐ ํจ์ฌ ์ง๊ด์ ์ผ๋ก ์ฝ๋๊ฐ ๋ค์ด์ค๋ ๊ฒ ๊ฐ๋ค.
- ๊ทธ๋ฆฌ๊ณ O(n^2)๊ฐ ์๋๋ฉด ์๋๋ ๊ฒ์ธ์ง... ์คํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์ฉํด๋ ๋ฌธ์ ํ์ด๋ ๋๊ฐ์์... ๋ฌธ์ ๊ฐ ์๋ชป๋๊ฑด ์๋๊น ์๊ฐํ๋ค.
46. [ํ](https://programmers.co.kr/learn/courses/30/lessons/42588)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/tower/Solution.java)
- ๋์ด๊ฐ ๊ฐ์ผ๋ฉด ์์ ํ ์ ์๋ค.
- ์์ ํ๋ ํ์ด ๋ฐ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ค.
- ์คํ์ผ๋ก ํ๋ฉด ๋ ์ด๋ ค์ธ ๊ฒ ๊ฐ์ ๋๋์ด ๋ ๋ค. ๊ทธ๋์ ์ผ๋จ ๋ฐฐ์ด์ ์ฌ์ฉํด๋ณด๊ธฐ๋ก ํ๋ค.
- ์ด์ค ํฌ๋ฌธ์ด ๋์ฌ ์ ๋ฐ์ ์๋ ๋ฌธ์ ๊ณ ๊ฐ์ฅ ๊ฐ๋จํ ํ์ด๋ฅผ ์๊ฐํด๋๋ค.
- ์คํ์ ํ์ฉํ ๊ฒ๊ณผ ๋ณ๋ฐ ๋ค๋ฅผ๋ฐ ์๋ ํ์ด์๋ค.
47. [๋ฉ์ฉกํ ์ฌ๊ฐํ](https://programmers.co.kr/learn/courses/30/lessons/62048)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/finesquare/Solution.java)
- ๊ฐ๋ก ๊ธธ์ด w, ์ธ๋ก ๊ธธ์ด h์ธ ์ง์ฌ๊ฐํ ์ข ์ด
- ๋๊ฐ์ ๊ผญ์ง์ ๋ผ๋ฆฌ ์๋ ์ง์ ์ผ๋ก ๋๋์ด์ ธ์๋ค.
- ๊ฐ๋ก ์ธ๋ก 1cm์ ์ ์ฌ๊ฐํ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋งํผ๋ง ์ฌ์ฉ.
- ์ ์ฒด๋ฅผ ๊ตฌํ๋ ๊ฒ์ w * h
- ์ฌ์ฉํ ์ ์๋ ์นธ์ ๊ฐ์๋ ์ด๋ป๊ฒ ๊ตฌํ ๊น?
- 1 * 2 ๋ผ๋ฉด ์ฌ์ฉํ ์ ์๋ ์นธ์ 2๊ฐ
- 1 * 3 ์ด๋ผ๋ฉด ์ฌ์ฉํ ์ ์๋ ์นธ์ 3๊ฐ
- 2 * 3 ์ด๋ผ๋ฉด ์ฌ์ฉํ ์ ์๋ ์นธ์ 4๊ฐ
- 2 * 4 ๋ผ๋ฉด 4๊ฐ (1 * 2)์ ํ์ฅ์ด๋ฏ๋ก...
- 3 * 4 ๋ผ๋ฉด ์ฌ์ฉํ ์ ์๋ ์นธ์ 6๊ฐ
- 3 * 5 ๋ผ๋ฉด ์ฌ์ฉํ ์ ์๋ ์นธ์ 7๊ฐ
- ์ง์ฌ๊ฐํ ์ด๋ฏ๋ก ์ ์ฌ๊ฐํ์ธ ๊ฒฝ์ฐ๋ ๊ณ ๋ คํ์ง ์์๋ ๋๋ค.
- ์์ ์กฐ๊ฑด๋ ๊ฒฐ๊ตญ 1 * 2 ํจํด์ด 8๋ฐฐ๋ ๊ฒ์ด์ด์ 16๊ฐ์ด๋ค.
- ๊ทธ๋ฌ๋ฉด ์ด๋ป๊ฒ ๋๊ฐ์ ํจํด์ ๊ตฌํ ์ ์์๊น?
- ๋ณด๋ฉด w + h - 1์ด ์ฌ์ฉํ ์ ์๋ ์นธ์ ๊ฐ์์ด๋ค.
- ์ด๊ฒ ํ์ฅ๋๋ค๋ฉด? ์๋ง (w/์ต๋๊ณต์ฝ์ + h/์ต๋๊ณต์ฝ์ - 1) * ์ต๋๊ณต์ฝ์ ์ผ ๊ฒ์ด๋ค. ์ฆ w + h - ์ต๋๊ณต์ฝ์ ์ด๋ค.
- ์ต๋ ๊ณต์ฝ์๋ ์ด๋ป๊ฒ ๊ตฌํ๋๋ผ.. ์์ ์ ํผ ๋ฌธ์ ๋ฅผ ์ฐธ๊ณ ํด์ for๋ฌธ์ ๋๋ ธ๋ ๊ฒ ๊ฐ์ผ๋ ์ ์ฉํ๋ค.
- ์ฌ๊ธฐ์ input์ ํฌ๊ธฐ๊ฐ 1์ต์ด๋ฏ๋ก O(n)๋ง ๊ฐ๋ฅํจ์ ์ ์ ์๋ค.
- ์ ์ฒด ๊ฐ์ - ์ฌ์ฉ๋ถ๊ฐ๋ฅํ ๊ฐ์ = ์ ๋ต.
- ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ธ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋ ๋์ ๊ฒ ๊ฐ๋ค.
- ```java
public int gcd(int p, int q) {
if (q == 0) {
return p;
}
return gcd(q, p % q);
}
```
์๊ฐ ๋ณต์ก๋๊ฐ O(log(n+m)) ์ด๋ผ๊ณ ํ๋ค.
48. [์คํฌํธ๋ฆฌ](https://programmers.co.kr/learn/courses/30/lessons/49993)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/skilltree/Solution.java)
- ๊ฒ์์ ์ต์ํด์ ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋ฌธ์ ๊ฐ ์ข ์ด์ํ๋ค.
- ์ด์จ๋ ์ค์ํ ๊ฒ์ ์์๊ฐ ์ ํด์ ธ ์๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์กด์ฌ ์ ๋ฌด๋ก ํ๋จํ๋ฉด ์๋ ๊ฒ ๊ฐ๋ค.
- ์๋์ง ํ์ธํ๊ณ -> ์์์ ๋ง๋์ง ํ์ธํด์ผ ๋ง์ ๊ฒ ๊ฐ๋ค.
- ๋ณ๋ค๋ฅธ edge case๊ฐ ์์๊น? ์กฐ๊ฑด์ด ๋๊ฒ ๋ง์์ ๊ทธ๋ด ์ผ์ ์์ ๊ฒ ๊ฐ๋ค.
- ์ ๊ทํํ์์ผ๋ก ํ๋ฉด ์ด๋จ๊น?
- ํ๋ ๋นผ๋จน์๊ฒ ์์๋ค. ์คํฌํธ๋ฆฌ์์ ์๋ฐฐ์ฐ๋ ๊ฒฝ์ฐ๋ ์กด์ฌํ๋ค. ๋ฐ๋ผ์ .*๋ก ์๋ ๋ฐฉ๋ฒ์ ๋ถ๊ฐ๋ฅ
- skill์ ์ ์ธํ ๋ฌธ์์ด์ ์์ค๋ค๋ฉด? ๊ทธ๋ฌ๋ฉด ์คํฌ ์ข ๋ฅ๋ง ๋จ์ง ์์๊น?
- ๊ทธ๋ฆฌ๊ณ ๋์ skill.indexOf๋ฅผ ๋จน์ด๋ฉด ์์น๊ฐ 0์ผ๋ก ๋์ค์ง ์์๊น?
- ์๋๋ 20ms ์ ๋ ๋์๋ค.
49. [์ ๋ง๋๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/42585)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/ironbar/Solution.java)
- ์ต๋ O(n^2) solution์ด ๋์์ผํ๋ค.
- ์์ ์ด๋ฃจ๋ ์คํ์ ํ์ฉํ ๋ฌธ์ ์ผ ๊ฒ ๊ฐ๋ค.
- ์คํ์ ์ฌ์ฉํ๊ณ ์ถ์๋๋ฐ ๋ ์ด์ ๋ถ๋ถ์์ ๋ฌธ์ ๊ฐ ๋์๋ค. ๋๋ถ๋ถ์ ๋ ์ด์ ๋ฅผ replaceํ๋ ์์ผ๋ก ํ์๋ค.
- ๊ทธ๋ฅ ๋ํ๊ณ ๋นผ๋ ๋ฐฉ๋ฒ๋ ๊ฐ๋ฅํด์ ์ด๋ ๊ฒ ํ์๋ค.
- ์คํ์ ์ฐ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ ์ ์ฅ์ ํ ์ฉ๋๋ก ์จ์ผํ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค.
- ๋ค๋ค ์๋ฏธ์๋ ๊ฐ์ pushํ๊ณ pop์ ํ๋ค. peek๋ง ์ฐ์์ด ์กฐ๊ธ ์์๋ค.
- ์คํ ํ์ด๋ ์ฃผ์๊น๊ฒ ๋ด๋๊ธด ํด์ผํ ๊ฒ ๊ฐ๋ค.
50. [์นด์นด์คํ๋ ์ฆ ์ปฌ๋ฌ๋ง๋ถ](https://programmers.co.kr/learn/courses/30/lessons/1829)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/coloringbook/Solution.java)
- ์ํ๋ฅผ ์ด์ฉํด์ ํ์ด์ผ ํ ๊ฒ ๊ฐ๋ค.
- ์ผ์ชฝ, ์๋ซ์ชฝ์ ์ฒดํฌํด์ ๊ฐ๋ค๋ฉด ๊ฐ์ ์์ญ์ด๋ค.
- HashMap์ ์จ์ ํ๋ ค๊ณ ํ๋๋ฐ, ์ค๋ณต๋๋ Key๋ฅผ ๊ฐ์ง๋ ์์ญ์ ์ด๋ป๊ฒํ์ง?
- ์ง๋ฌธ์ ๋ณด๋ BFS ๋ฌธ์ ๊ฐ๋ค. BFS๋ ์ ๋ชฐ๋ผ์ ํ์ด๋ฅผ ๋ณด๋ฉด์ ๋ฐ๋ผ๊ฐ๊ธฐ๋ก ํ๋ค.
- BFS์ ํต์ฌ์ ์ด๋ฏธ ๋ฐฉ๋ฌธํ ๊ณณ์ ๋ค์ ์ฒดํฌํ์ง ์๊ฒ๋ ํ๋ ๊ฒ ๊ฐ๋ค.
51. [์์ ์ฐพ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/42839)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/findprime/Solution.java)
- ์ต๋ 7์๋ฆฌ์ ์ซ์๊ฐ ๋ง๋ค์ด์ง ์ ์๋ค.
- ๋ง๋ค์ด์ง ์ ์๋ ์๋ฅผ ๋ชจ๋ ๋ง๋ค๊ณ ์ด ์๊ฐ ์์์ธ์ง ํ๋จํด์ผ ํ๋ค.
- ์ผ๋จ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ ์ฉํ๋ ๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค. length๋ฅผ ๊ฐ์ง๊ณ ํ๋จํ๋ค. ์๊ฐ ๋ณต์ก๋๋ O n log log n ์ด๋ผ๊ณ ํ๋ค.
- ์ซ์ ์กฐํฉ์ ์ด๋ป๊ฒ ๋ง๋ค ์ ์์๊น? ์ด๊ฒ ์ ์ฒด ๋ค ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ, ์ผ๋ถ๋ง ์ฌ์ฉํ ์๋ ์๋๋ฐ... ๊ฒฝ์ฐ์ ์๊ฐ ๋๋ฌด ๋ง๋ค.
- ์์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์ ์ฐพ์๋ณด์๋ค. (https://gorakgarak.tistory.com/522)
- ์์ด์ด ์ ์ดํด๊ฐ ์๊ฐ๋ค... ํํ... ๋์ค์ ๋ค์ ํ์ด๋ณด์
52. [ํฐ ์ ๋ง๋ค๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/42883)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/makebignumber/Solution.java)
- ๊ทธ๋ฅ ์ญ์ ์ ๋ ฌ์ ํด์ String์ ๋ง๋ค๋ฉด ๋์ง ์์๊น?
- ์๋ชป๋ ์ ๊ทผ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ๋ค. sorting์ ํ์ง ์๊ณ ๋ง๋ค ์ ์๋ ์ต๊ณ ๋ก ํฐ ์๋ฅผ ์ฐพ์๋ด๋ ๋ฌธ์ ๊ฐ๋ค.
- ํ์๋ฒ์ด๋ผ๊ณ ํ์์ผ๋, ๊ทธ ๋ ์ํฉ์์์ ์ต์ ์ ์ ํ์ ํ๋๊ฒ ๋ง๋ ๊ฒ ๊ฐ๋ค.
- ๋ฐฑ๋ง์๋ฆฌ๋๊น O(n^2) ํ์ด๋ ๋ถ๊ฐ๋ฅํ๋ค. ์ต๋ nlogn์ด ํ๊ณ์ธ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง, ์ ๋ ฌ๋ ์๋์ด์์ด์ ๊ทธ๋ฅ n^2 ํ์ด๊ฐ ์๋๋ค๊ณ ๋ง ์ดํดํ๊ณ ์์ด์ผ ํ ๊ฒ ๊ฐ๋ค.
- ์ ๊ฑฐ๊ฐ๋ฅํ ์ซ์์ ๊ฐ์๋งํผ ๋ฐ๋ณต๋ฌธ๋ค ์ํํ๋๋ก ํ์๋ค.
- ์ ๊ทธ๋ฆฌ๋๊ฐ ์ ์ฉ ๊ฐ๋ฅํ๊ฐ? ์ซ์๋ฅผ ์ ๊ฑฐํ ๋, ์ฒ์๋ถํฐ ์์ ์๋ฅผ ์ ๊ฑฐํด ๋๊ฐ๋ค ๋ณด๋ฉด ์ ๋ต์ด ๋๋ ๋ฅ์ ๋ฌธ์ ๋ค.
- ์ฆ, ๋ถ๋ถ์ ์ต์ ํด๊ฐ ์ ์ฒด์ ์ต์ ํด๊ฐ ๋๋ ๋ฅ์ ๋ฌธ์ ๋ค.
- ์ฝ๋๋ ๊ฐ๋จํ๊ฒ ๋์๋๋ฐ, ์ด๋ ต๋ค..
- ์ต์ด์์น ์ง์ ์ 0๋ฒ์งธ๋ก ํด๋๋ฉด ์๋๋ ๊ฒ ๊ฐ๋ค. Edge ์ผ์ด์ค๋ ๋ฌด์์ผ๊น?
- ์ผ๋จ ๋ง์ง๋ง index๋ก ๋ณ๊ฒฝํ๋๋ ์ ๋์ํ๋ค. Edge ์ผ์ด์ค๋ ์๊ฐํด๋ด์ผ๊ฒ ๋ค.
53. [์กฐ์ด์คํฑ](https://programmers.co.kr/learn/courses/30/lessons/42860)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/programmers/joystick/Solution.java)
- ํญ์ ์ต์ ์ ์ ํ์ ํด์ผํ๋ค.
- ๋๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ์์ผ๋ฏ๋ก char ๋บ์ ์ด ๊ฐ์ฅ ์ ์ ์ํฉ์ ๊ณ ๋ คํ๋ฉด ๋์ง ์์๊น?
- ๊ฐ์ด๋ฐ ๋ฌธ์๊ฐ ๋ฌด์์ด์ง? M?
- ์ผ๋จ ๋ชจ๋ ๊ธ์๋ฅผ ์ํํด์ผ ๋๋ค. ์๋ํ๋ฉด ์ผ์ชฝ ์ค๋ฅธ์ชฝ์ธ์ง๋ ํ๋จํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
- ์ ์๋ ํ๋จ์ char ์ฐ์ฐ, ์ข์ฐ ํ๋จ์ index ์ฐ์ฐ์ผ๋ก ๊ณ์ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
- int type์ผ๋ก ์ถฉ๋ถํ ๊ฒ ๊ฐ๋ค.
- ์ผ๋จ ๋ชจ๋ ๋ฌธ์๋ ์์ง์ฌ์ผ ํ๋ฏ๋ก ์ด๋ฅผ ๋ต์ ๋ํด์ค๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋์ ์ต์ ์ด๋๊ฑฐ๋ฆฌ๋ฅผ ๋ํด์ฃผ๋ฉด ๋!
- [์ฐธ๊ณ ](https://keepgoing0328.tistory.com/71)
- ๊ทธ๋ฆฌ๋๋ก ํ๋ฉด ์ ํ๋ฆฌ๋ ์ผ์ด์ค๊ฐ ์๋ค๊ณ ํ์ง๋ง, ์ด์ฐ๋์๋ ํต๊ณผ๋ ํ๋ค.
- ์ ์ ์ด๋ ค์์ง๋ค... ์ด๋ป๊ฒ ๊ณต๋ถํด์ผํ๋ ๊ฑธ๊น...---
## [LeetCode](https://leetcode.com/)
1. [Reverse Integer](https://leetcode.com/problems/reverse-integer/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/leetcode/reverseinteger/Solution.java)
2. [Two Sum](https://leetcode.com/problems/two-sum/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/leetcode/twosum/Solution.java)
3. [Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/leetcode/removeduplicates/Solution.java)
- ๋ด๋ถ ๋ฐฐ์ด ์กฐ์ ํ ๊ฒ์ ์ด๋ป๊ฒ ํ ์คํธํด์ผํ๋์ง ๋ชจ๋ฅด๊ฒ ์.. ์ฐพ์๋ณด๊ธฐ!!
- LeetCode ์๋ฃจ์ ์ ๋ดค๋๋ฐ ๋ฌธ์ ๋ฅผ ์๋ชป ์ดํดํ์๋ค!
4. [Happy Number](https://leetcode.com/problems/happy-number/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/leetcode/happynumber/Solution.java)
- ์ฒ์์ String์ผ๋ก ๋ง๋ค์ด์ ํด๊ฒฐํ๋๋ฐ 31ms๊ฐ ๋์๋ค.
- ์ด๊ฒ์ 10์ผ๋ก ๋๋จธ์ง ์ฐ์ฐ๊ณผ ๋๋๊ธฐ ์ฐ์ฐ์ ํ๋ ๋ฐฉ์์ผ๋ก 8ms๊น์ง ์ค์๋ค.
- Map์ Set์ผ๋ก ๋ฐ๊พธ๋ 1ms๊ฐ ๊ฑธ๋ ธ๋ค.
5. [Single Number](https://leetcode.com/problems/single-number/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/leetcode/singlenumber/Solution.java)
- ์ฒ์์ HashMap์ ์ด์ฉํด์ ํด๊ฒฐํ๋๋ฐ 21ms๊ฐ ๋์๋ค.
- ๊ฐ์ ์๊ฐ 2๋ฒ๊น์ง๋ง ๋์ฌ ์ ์์ผ๋ฏ๋ก, ๋นํธ xor์ฐ์ฐ์ ํ๋ฉด ๊ฐ์ ์๋ 0์ด๋๊ณ , ํ๋์ธ ์๋ง ๋จ๊ฒ๋์ด ๊ฐ์ฅ๋น ๋ฅธ ์๋ฃจ์ ์ด๋ค.๐ฎ
6. [Palindrome Number](https://leetcode.com/problems/palindrome-number)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/leetcode/palindromenumber/Solution.java)
- String์ผ๋ก ๋ณํํ๋ ์๋ฃจ์ ์ ์ฌ์ฉํ๋ค. ์ญ์ ์๋๋ ๋๋ฆฌ๋ค... Runtime: 13 ms, faster than 12.68%
- Solution์ ๋ฐ๋ผํ๋ค. ์ต๋ํ ์ฝ๋๋ฅผ ์ดํดํ๋๋ฐ ์ฃผ์์ ์ ๋์๋ค. Runtime: 6 ms, faster than 100.00%### [LeetCode Challenge](https://leetcode.com/explore/)
#### May
1. [Ransom Note](https://leetcode.com/explore/featured/card/may-leetcoding-challenge/534/week-1-may-1st-may-7th/3318/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/leetcode/challenge/ransomnote/Solution.java)
- ์ฒ์์ HashMap์ ์ด์ฉํด์ ํ์๋ค. 53ms๊ฐ ๊ฑธ๋ ค์ ์ด ๋ฐฉ๋ฒ์ ๋๋ฆฌ๋ค๊ณ ์๊ฐ๋๋ค.
- LeetCode์์ ์ ์ถ๋ ๋ต์์ค 0ms๊ฐ ๊ฑธ๋ฆฐ Solution์ ๋ถ์ํ๋ค.
- ๋์์ ์ฐจ์ด๋ HashMap์ ๊ตณ์ด ์์ด ์ . split์ผ๋ก ๋๋์ง ์๊ณ CharArray๋ฅผ ์ฌ์ฉํ ์ . indexOf๋ฅผ ํ์ฉํ ์ .
- ๊ทธ๋ฅ ๋๋ฌด ์ํจ...2. [Number Complement](https://leetcode.com/explore/challenge/card/may-leetcoding-challenge/534/week-1-may-1st-may-7th/3319/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/leetcode/challenge/numbercomplement/Solution.java)
- ๋นํธ์ฐ์ฐ์ ํ์ฉํด๋ณด๊ณ ์ถ์๋ค.
- ์ฒ์์ int ์ ์ฒด๋ฅผ byte๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ์ผ๋๋ฐ, ์ด๊ฑด ๋ณด์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ด๋ผ... ์์๊ฐ ๋์๋ฒ๋ ธ๋ค.
- ๊ฒฐ๊ตญ ์๋ฃจ์ ์ ์ฐพ์๋ดค๋ค. ๋ง์ง๋ง ๋นํธ๋ฅผ ๋ฐ๋ก ๋ํ๋๊ฒ ํต์ฌ์ธ๋ฏ
- ๊ทธ๋ฆฌ๊ณ 0์ธ ๊ฒฝ์ฐ๋ ํน์ด์ผ์ด์ค๋ผ ๋ฐ๋ก ์ฒ๋ฆฌํด์ค์ผํ๋ค.3. [First Unique Character in a String](https://leetcode.com/explore/challenge/card/may-leetcoding-challenge/534/week-1-may-1st-may-7th/3320/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/leetcode/challenge/firstuniquechar/Solution.java)
- ๋ฐ๋ณต๋์ง ์๋ Character์ค ๊ฐ์ฅ ์์ ์๋ ๊ฒ์ Index๋ฅผ ๋ฐํํ๋ค.
- ์์ผ๋ฉด -1์ ๋ฐํํด์ผ ํ๋ค.
- ๋ชจ๋ ์๋ฌธ์๋ก ๊ฐ์ ํ๋ค.
- ์ผ๋จ CharArray๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
- 4ms๊ฐ ๋์๋ค.
- ๊ตณ์ด charArray๋ก ๋ฐ๊ฟ ํ์๊ฐ ์๋ ๊ฒ ๊ฐ๋ค. ์ ๋ ฅ์ ๋ฒ์๊ฐ ์๋ฌธ์ 'a' - 'z'์ด๋ฏ๋ก for๋ฌธ์ ๋๋ฆด ์ ์๋ค.
- 1ms๊ฐ ๋์๋ค. ์ฌ์ค ์๋ฃจ์ ์ ๋ณด๊ณ ํ๋ค. ์ด๋ป๊ฒ lastIndex๋ ๊ฐ์์ง ๋น๊ตํ ์๊ฐ์ ํ์ง...4. [Majority Element](https://leetcode.com/explore/challenge/card/may-leetcoding-challenge/534/week-1-may-1st-may-7th/3321/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/leetcode/challenge/majorityelement/Solution.java)
- array์ ํฌ๊ธฐ๋ n์ผ ๋, n/2 ๋ณด๋ค ๋ง์ด ๋ฑ์ฅํ๋ element๊ฐ majority element์ด๋ค.
- ๋น ๋ฐฐ์ด์ ๋ฑ์ฅํ์ง ์์ผ๋ฉฐ, majority element๋ ๋ฐ๋์ ์กด์ฌํ๋ค.
- ๋์ค๋ ๊ฒ์ ์ผ์ผ์ด ์ธ์ผํ ๊ฒ ๊ฐ๋ค.
- HashMap์ ์ฌ์ฉํด์ ํ์ด๋ณด์๋ค. Runtime: 8 ms---
## [BAEKJOON](https://www.acmicpc.net/)
1. [์ ์ ๋ ฌํ๊ธฐ 3](https://www.acmicpc.net/problem/10989)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/sortnumber3/Main.java)
- count sort๋ฅผ ์ด์ฉํ๋ฉด ๋ ๋น ๋ฅด๊ฒ ํ ์ ์๋ค. (๋ฉ๋ชจ๋ฆฌ๋ ์ ๊ฒ๋จน๊ณ , ์๋๋ O(nlogn) -> O(n)์ด๋ผ ๋ ๋น ๋ฅด๊ฒ ๋์๋ค.)
2. [ํธ๋ฆฌ ์ํ](https://www.acmicpc.net/problem/1991)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/treetraversal/Main.java)
- ์ ์ ์ํ, ์ค์ ์ํ, ํ์ ์ํ๊ฐ ๋ฌด์์ธ์ง ๋ชฐ๋ผ์ ํ์ธํด๋ณด๊ธฐ๋ก ํ๋ค.
- ์ง์ Tree ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด๋ณด๊ธฐ๋ก ํ๋ค.
- ํ ์คํธ ์ฝ๋๋ ํต๊ณผํ๋ค.
- ๋ฐฑ์ค์ ์ ์ถํ ๊ฒฐ๊ณผ 76ms๊ฐ ๋์๋ค.
3. [A/B](https://www.acmicpc.net/problem/1008)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/adivideb/Main.java)
- ๋ธ๋ก ์ฆ 4 ๋ฌธ์ ์๋ค. ์ถ๋ ฅ ์์ ๋ฅผ ๋ณด์ง ์๊ณ ๊ทธ๋ฅ ๋ง๋ค์๋ค๊ฐ ํ๋ ค๋ฒ๋ ธ๋ค.
- ์ด ๋ฌธ์ ์ ํต์ฌ์ ๋๋๊ธฐ ์ฐ์ฐ์ ํ์ ๋, ์์ซ์ ๋ช ๋ฒ์งธ ์๋ฆฌ๊น์ง ํ์ํ ๊ฒ์ธ์ง๊ฐ ํต์ฌ์ธ ๊ฒ ๊ฐ๋ค.
- `System.out.printf("%.#f%n", ํ์ํ ์ ํน์ ์ฐ์ฐ);`
- ์ฌ๊ธฐ์ #์ ํ์ํ ์๋ฆฟ์๋ฅผ ์๋ฏธํ๋ค.
4. [์ฌ์น์ฐ์ฐ](https://www.acmicpc.net/problem/10869)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/fourarithmetic/Main.java)
- ๋ธ๋ก ์ฆ 5 ๋ฌธ์ ์๋๋ฐ ์ข ๋ง์ด ํ๋ ธ๋ค.
- int ์ฐ์ฐํ๊ณ ๋์ ์ ๋ charํ์ ๊ทธ๋ฅ ๋ํ์ง๋ง๊ณ ๊ทธ๋ฅ Stringํ์ ๋ถ์ด์. charํ์ด ์ ์๊ฐ์ผ๋ก ๊ณ์ฐ์ด ๋์ด์ ๋ฌธ์ ๋ฅผ ํ๋ฆฌ๊ณ ์์๋ค.
- ๊ฐ๊ธ์ ์ด๋ฉด ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํด์ ์ํ๋ ๋๋ก ๋์ํ๋์ง ํ์ธํ๋ ์ต๊ด์ ๋ค์๊ธ ๋ค์ด์.
- ๋ฐฑ์คํ์ด๋ ํ ํ๋ฆฟ์ ๋ง๋ค์ด ๋๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค.
5. [๋๋จธ์ง](https://www.acmicpc.net/problem/10430)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/rest/Main.java)
- ํ ์คํธ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํด์ ํ ๋ฒ์ ์ ๋ต์ ๋ง์ถ ์ ์์๋ค.
6. [๊ณฑ์ ](https://www.acmicpc.net/problem/2588)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/multifly/Main.java)
- ํ ์คํธ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํด์ ํ ๋ฒ์ ์ ๋ต์ ๋ง์ถ ์ ์์๋ค.
- ์ซ์๋ ๊ฑฐ๊พธ๋ก ๊ณ์ฐํ๋ค๋ ์ ์ ๊ฐ๊ณผํด์ ํ ์คํธ์์ ์คํจํ์๋ค. ์ฃผ์ํ์.
7. [๋ค ๋ฒ์งธ ์ ](https://www.acmicpc.net/problem/3009)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/fourthpoint/Main.java)
- XOR์ฐ์ฐ์ ์ด์ฉํ์ฌ ํ ์คํธ ์ฝ๋๋ ํต๊ณผํ๋๋ฐ, ๋ฌธ์ ๋ ํ๋ ธ๋ค๊ณ ๋์๋ค. ๋ญ๊ฐ ๋ฌธ์ ์ธ์ง ์์ง ๋ชจ๋ฅด๊ฒ ๋ค.
- ๊ทธ๋ฅ ์๋์ง ํ์ธํด์ ํธ๋ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ, ํ์ด์ฌ๋ณด๋ค ๋๋ ค์ ํ์ธ์ด ํ์ํ๋ค.
8. [ํ์](https://www.acmicpc.net/problem/1065)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/hansu/Main.java)
- ์์ ์ ์ X์ ๊ฐ ์๋ฆฌ๊ฐ ๋ฑ์ฐจ์์ด์ ์ด๋ฃฐ ๋, ์ด๋ฅผ ํ์๋ผ๊ณ ํ๋ค.
- ์ด ๋, 1 <= ํ์ <= N ์ธ ํ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค.
- ๋ ์๋ฆฌ์ ๊น์ง๋ ๋ฌด์กฐ๊ฑด ํ์๋ผ๊ณ ์น๋ค. (์์ ์ถ๋ ฅ์ ๋ฐ๋ฅด๋ฉด)
- ํ์๋ฅผ ํ๋ณํ๋ ๊ฒ์ 999๊น์ง๋ง ํ๋ฉด ๋๋ค.
- ํ์ ๊ฒ์ฆ ๋ก์ง์ ์ฒซ์งธ ์๋ฆฌ์, ๋์งธ ์๋ฆฌ์, ์ ์งธ ์๋ฆฌ์๊ฐ ๊ฐ์์ง ๋น๊ตํ๋ฉด ๋๋ค.
- ์ฒ์์ ์์ ์ ๋ ฅ ์ถ๋ ฅ์ ์๋ชป๋ด์ ์๋ชป๋ ๋ก์ง์ผ๋ก ์์ฑํ์๋ค.
9. [์ง๊ฐ์ผ๊ฐํ](https://www.acmicpc.net/problem/4153)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/righttriangle/Main.java)
- ํผํ๊ณ ๋ผ์ค์ ์ ๋ฆฌ๋ฅผ ์์ฉํ๋ ๋ฌธ์
- ํน์ ๋ชฐ๋ผ์ sorting์ ํด์ฃผ์๋ค.
10. [์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์](https://www.acmicpc.net/problem/2609)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/gcfandlcm/Main.java)
- ์ต๋๊ณต์ฝ์๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ผ๋ก ํผ๋ค. ์ฌ๊ธฐ์ ์กฐ๊ฑด์ด a > b ์ฌ์ผ ํ๋ฏ๋ก Math.max์ Math.min์ ์ฌ์ฉํ๋ค.
- ์๋๋ฉด Arrays.sort๋ฅผ ์จ๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ๋ค.
- ์ต์๊ณต๋ฐฐ์๋ (a / ์ต๋๊ณต์ฝ์) * (b / ์ต๋๊ณต์ฝ์) * ์ต๋๊ณต์ฝ์ ์ด๋ฏ๋ก a * b / ์ต๋๊ณต์ฝ์ ์ด๋ค.
11. [์ต์๊ณต๋ฐฐ์](https://www.acmicpc.net/problem/1934)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/lcm/Main.java)
- ์ต์๊ณต๋ฐฐ์๋ ๊ฒฐ๊ตญ a * b / gcf๋ก ๊ตฌํ๋ค.
12. [GCD ํฉ](https://www.acmicpc.net/problem/9613)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/gcdsum/Main.java)
- ์ ์ฒด ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค ๊ณ์ฐํ ํฉ์ ๊ตฌํด์ ์ถ๋ ฅํด์ผํ๋ค.
- overflow๊ฐ ๋์ ํ๋ ธ๋ ๋ฌธ์ ๋ค. ์ ๋งํ๋ฉด Sumํ๋ ์์ ์ ํ๋ ๋ณ์๋ long ํ์ ์ผ๋ก ๋๋ ํธ์ด ์ข๊ฒ ๋ค.
13. [์์ ์ฐพ๊ธฐ](https://www.acmicpc.net/problem/1978)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/findprime/Main.java)
- ์์๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ฐ๋ก ์์๊น?
- ์ผ๋จ ์ํ์ ์ ์์ ์ ๊ฐํด์ ํ์ด๋ณด๋๋ก ํ์.(1๊ณผ ์๊ธฐ์์ ๋ง์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ ์, ๋จ 1์ ํฌํจํ์ง ์๋๋ค.)
- ์๊ฐ๋ณด๋ค ์ฝ๋ ์ต์ ํ๋ฅผ ์ํ๋ค๊ณ ์๊ฐํ๋๋ฐ, 76ms๋ก ๋น ๋ฅธํธ์ด์๋ค... ๋ญ์ง...
14. [๊ณจ๋๋ฐํ์ ์ถ์ธก](https://www.acmicpc.net/problem/6588)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/goldbach/Main.java)
- ์์๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ธ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ๋ชจ๋ฅด๋ฉด ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆด ๊ฒ ๊ฐ์ ๋ฌธ์ ์๋ค.
- 300ms ๋ผ์ ๋๋ฆฐํธ์ธ์ค ์์๋๋ฐ, ๋น ๋ฅธํธ์ด์๋ค.
- ์ค๋ฒ 1์ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ๊ฐ์ํด์ ๋งค๊ฒจ์ง ๋ฑ๊ธ์ธ ๊ฒ ๊ฐ๋ค.
15. [๊ฑฐ์ค๋ฆ๋](https://www.acmicpc.net/problem/5585)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/changecash/Main.java)
- ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ธ loop์ ์กฐ๊ฑด๋ฌธ์ ํตํด์ ๋ง๋ค์๋ค.
- ์ฝ๋๋ผ์ธ์ด ๋๋ฌด ๋ฌด์ํด๋ณด์ด๋ ๋จ์ ์ด ์์ง๋ง, ๊ฐ์ฅ ๊ทธ๋ฆฌ๋ํ์ง ์์๊น ์ถ๋ค.
16. [๋์งํธ ํฐ๋น](https://www.acmicpc.net/problem/2816)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/digitaltv/Main.java)
- ํ๋ก๊ทธ๋๋จธ์ค์ ์กฐ์ด์คํฑ๊ณผ ๋น์ทํ ๋ฌธ์ ๋ค.
- ๋ฌธ์ ์ ์๊ตฌ์ฌํญ์ KBS1์ด ์ฒซ ๋ฒ์งธ, KBS2๊ฐ ๋ ๋ฒ์งธ๋ก ๋๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ค.
- ์กฐ์ด์คํฑ๊ณผ ๋ค๋ฅธ์ ์ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐฐ์ ํ๋ ๊ฒ์ด๋ผ ๊ทธ๋ฆฌ๋๋ก ํ ์ ์์ ๊ฒ ๊ฐ๋ค.
- 3, 4๋ฒ์ ์ง๋ฌธ์ ์์ธํ ์ฝ์ด๋ณด์๋ค. ๊ฐ๋ฆฌํค๊ณ ์๋ i์ i + 1์ ์์๋ฅผ ๋ณ๊ฒฝํ๊ณ , i + 1 ์์น๋ฅผ ๊ฐ๋ฆฌํจ๋ค๋ ๊ฒ.
- ์ฆ, ํ์ฌ ์ ํํ ์ฑ๋์ ๊ทธ๋๋ก ์ ์งํ๋ค๋ ๊ฒ์ด๋ค.
- ๊ทธ๋ฆฌ๋ํ๊ฒ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? ๋จผ์ KBS1์ ๋งจ ์๋ก ์ฌ๋ฆฌ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
- KBS1์ด ๋งจ ์์ ์กด์ฌํ๊ฑฐ๋, ์๋๋ฉด ์๋์ ์กด์ฌํ ๊ฒ์ด๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋์ KBS2๊ฐ ์กด์ฌํ๋ ์์น๋ฅผ ํ์ํ๊ณ , ๋๊ฐ์ด ์ํํ๋ค.
- ๋งจ ์์ ์์๋ฅผ ์์ง์ด๋ ๊ฒฝ์ฐ์ KBS1์ ์ง์ ์์ง์ด๋ ๊ฒฝ์ฐ๋ฅผ ๋น๊ตํ๋ค.
- ๊ทธ์ค ์ ๊ฒ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๋ฅผ ์ถ๋ ฅํ๋ค.
- ์คํ์ ์ ์ง๊ฐ ์ ๋ต์ธ ์ผ์ด์ค๊ฐ ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๋ ๊ฒ์ ๊ฒ์์ ํตํด์ ์์๋ค.
- ์ฒ์ ์ ์ถํ ์ฝ๋๊ฐ ์ค๋ต์ด ๋์๋ ์ด์ ๋, KBS2๊ฐ KBS1๋ณด๋ค ์์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ง ์์์ ์๊ธด ๋ฌธ์ ์๋ค.
17. [ATM](https://www.acmicpc.net/problem/11399)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/atm/Main.java)
- ์ ๋ ฌ์ ์ํํด์ ๋ํ๋ ๋ฐฉ๋ฒ์ด ์์ ๊ฒ์ด๋ค.
- 1000๊ฐ์ input์ด๋ฏ๋ก, nlogn ์ด๋ผ๋ฉด ์ถฉ๋ถํ ๊ฒ ๊ฐ๋ค.
- ์ ๋ ฅ ๊ฐ์ด overflow๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์์ด long ํ์ ์ ์จ์ฃผ์๋ค.
- ์ ์ด๊ฒ ์ค๋ฒ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค.
- ์ ์ด๊ฒ ๊ทธ๋ฆฌ๋์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค. ๊ฐ์๋ ๋ ์ฃผ๊ณ ์ฌ์ผํ๊ณ ใ ใ (๋งค ์๊ฐ ์ต์ ์ ํด๋ฅผ ๊ตฌํ๋๋ก ๋ง๋ค์ด์ค์ผํด์ ๊ทธ๋ฐ๊ฑด๊ฐ?)
- ์คํ๋ ค ์ ๋ ฌ์ ์๊ฐํ์ง ๋ชปํ๋ฉด ๋ชปํธ๋ ๋ฌธ์ ๋ผ๊ณ ์๊ฐ์ด ๋ค์๋ค.
- ํธ๋ ์ค์๊ฒ ๋ฌผ์ด๋ณด์๋๋ฐ, ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ง ๊ทธ๋๋ก ๋ถ๋ถํด๊ฐ ์ต์ ํด๊ฐ ๋๋ฉด ๋๋๊ฑฐ๋ผ๊ณ ํ๋ค.
18. [๋์ 0](https://www.acmicpc.net/problem/11047)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/coinzero/Main.java)
- ๋์ ์ ์ญ์์ผ๋ก ๋ํด์ ํ์ํ ๋์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์ง์ผํ๋ค.
- ์๊ฐํ๋ ๋๋ก ๋์ํ๊ณ ์ค๋ฒ 1๊ธ์ ๋ฌธ์ ๋ ์๋ ๊ฒ ๊ฐ๋ค.
19. [ํ์์ค๋ฐฐ์ ](https://www.acmicpc.net/problem/1931)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/meetingroom/Main.java)
- ์ต์ ํด๋ฅผ ๊ตฌํ๋ ค๋ฉด, ๊ฐ์ฅ ๋จผ์ ๋๋๋ ๊ฒ์ ์ ํํ๊ณ ์ด์ ์ ์ ํํ ๊ฒ๊ณผ ๊ฒน์น์ง ์์ผ๋ฉด ๋จ์ ์ ์ ์๋ค.
- ๋ํ ๋ฌธ์ ์ ์กฐ๊ฑด์์ (1,4) (4,7) ๊ฐ์ ์กฐ๊ฑด์ ๊ฒฝ์ฐ ๊ฐ๋ฅํจ์ ์ ์ ์๋ค.
- ์ ๋ ฌ๊ธฐ์ค์์ ๋๋๋ ์๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ ์ ๋ ฌ๋๋ ์กฐ๊ฑด์ ์ค์ ํด์ฃผ์ง ์์์ ํ๋ ธ๋ค. ์ ๋ ฌํ ๋๋ ํญ์ ์ ๊ฒฝ์จ์ ํ์.
- Comparator ๋๋ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ ค์ง๋ค. ํญ์ ์ผ๊ด์ ์ผ๋ก ๋น๊ตํ ๋, Comparable์ implementํ๋ ๊ฒ๋ ๊ณ ๋ คํด๋ณด์.
20. [๋กํ](https://www.acmicpc.net/problem/2217)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/rope/Main.java)
- ๋ชจ๋ ๊ณ ๋ฅด๊ฒ ๋ถ๋ฐฐ๋๋ค๋ ๊ฒ์ด ํต์ฌ์ธ ๊ฒ ๊ฐ๋ค.
- ์ฆ, n๋ถํฐ ์ํํ๋ฉด์ ๊ฐ์ฅ ๋์ ์ค๋์ด ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์ผ๋ฉด ๋๋ ๊ฒ ๊ฐ๋ค.
- ์ ๋ ฌ์ด ํ์ํ ๊ฒ ๊ฐ๋ค.
- n^2 ๊น์ง ๊ฐ๋ฅํ ๊ฒ ๊ฐ๋ค.
21. [30](https://www.acmicpc.net/problem/10610)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/thirty/Main.java)
- ๊ฐ์ฅ ํฐ ์ ์ด๋ฉด์ 30์ ๋ฐฐ์๋ฅผ ๋ง๋๋ ๋ฌธ์
- ์ผ๋จ ์๋ฅผ ์ ๋ ฌํด์ ํฐ ์๋ฅผ ๋ง๋ ๋ค์ 30์ ๋ฐฐ์์ธ์ง ์ฒดํฌ๋ฅผ ํด์ผํ ๊ฒ ๊ฐ๋ค.
- ์์๋ฅผ ๋ฐ๊ฟจ์ ๋, 30์ ๋ฐฐ์์ธ ๊ฒฝ์ฐ๊ฐ ์์๊น? ์๋ง ์์ผ๋๊น ๊ทธ๋ฆฌ๋ ์ผ ๊ฒ ๊ฐ๋ค.
- ๋ฐํ์ ์๋ฌ๊ฐ ๋ด๋ค. ์๋ง ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ ๋ คํ์ง ์์ ๊ฒ ๊ฐ๋ค.
- ๋ฌธ์ ๊ฐ ๊ฑฐ์ง๊ฐ์๋ค. 10๋ง์๋ฆฌ ์ ์๋ค. ์ด๊ฑธ Integer.parseInt๋ฅผ ํ๋ ค๊ณ ํ์ผ๋...
- ์งง์ ์๋ฃจ์ ์ ๋ณด๋๊น 10๊ฐ ํฌ๊ธฐ์ ๋ฐฐ์ด์ ์์ฑํด์ ๋์จ ๊ฐฏ์๋งํผ ํ๋ค. countsort์ ๋ฐฉ์์ ์ฐจ์ฉํ ๋ฏ ํ๋ค.
22. [์์ด๋ฒ๋ฆฐ ๊ดํธ](https://www.acmicpc.net/problem/1541)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/lostbracket/Main.java)
- ์์ ๊ฒฐ๊ณผ๋ฅผ ์ต์๋ก ๋ง๋๋ ๋ฌธ์ ๋ค.
- ๋ํ๊ธฐ ๋นผ๊ธฐ ์ด๋ฏ๋ก ์ฐ์ฐ์ ์์๋ง ์๊ฐํ๋ฉด ๋์ง ์์๊น?
- ์์๋๋ก ์ฝ์ผ๋ฉด์ -๊ฐ ๋ฑ์ฅํ๋ ์๊ฐ๋ถํฐ ๋ค์ -๊ฐ ๋ฑ์ฅํ ๋ ๊น์ง ๋ชจ๋ ๋ํด์ ๋นผ๋ ๊ฒ์ด ๋ง์ ๊ฒ ๊ฐ๋ค.
- ๊ทธ๋ฅ -๊ฐ ๋ฑ์ฅํ ์ดํ๋ก๋ถํฐ ๋ค ๋นผ๋ฒ๋ฆฌ๋ฉด ๋๋ ๊ฒ ๊ฐ๋ค.
- ์๋๋ฉด -๊ฐ ๋ฑ์ฅํ ์ดํ์ +๋ ๊ดํธ๋ก ๊ฐ์ผ๋ค๊ณ ๊ฐ์ ํ๋ฉด ๋๋ค.
23. [๋ฌธ์์ด](https://www.acmicpc.net/problem/1120)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/string/Main.java)
- ์ฐจ์ด๋ฅผ ์ต์๋ก ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
- ๋์ด ๊ฒน์น๋ ์์ญ์ด ๊ฐ์ฅ ๋ง์ ๋ถ๋ถ์ด ๊ณง ์ต์ ์ผ ๊ฒ ๊ฐ๋ค.
- A์ ์์ด๋ ๋ค์ ์ฐ์ฐ์ ํ ์ ์์ผ๋ฏ๋ก ๊ฒน์น๋ ์์ญ์ ๊ฐ์๋ง ์ฒดํฌํด์ฃผ๋ฉด ๋๋ค.
- ์์์๋ถํฐ ํ์ํ๊ณ ๋ค์์๋ถํฐ ํ์ํด์ ๋์ค์ ๋ ์ ๊ฒ ์ฐจ์ด๋๋ ๊ฒ์ ์ ํํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
- ์ ๋ค๋ง ์ ํํ๋ฉด ์๋๊ณ , ์ฐจ์ด๋๋ ๊ตฌ๊ฐ ์ ์ฒด๋ฅผ ํ์ํด์ผ ํ๋ ๊ฒ ๊ฐ๋ค.
24. [์ ์ ์ฌ์]https://www.acmicpc.net/problem/1946)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/baekjoon/newrecruits/Main.java)
- ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ํ๋ฉด ๋ณด๋ค ์ฝ๊ฒ ํ๋ฆด ๊ฒ ๊ฐ์ ๋ฌธ์ ๋ค.
- ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ์ ๋ ฌ์ ํ๋ฉด ๋์ง ์์๊น?
- ์ ์ด๋ ํ๋๊ฐ ๋ค๋ฅธ ์ง์์๋ณด๋ค ๋จ์ด์ง์ง ์๋ ์(๋ ๋ค ๋๊ตฐ๊ฐ๋ณด๋ค ๋ถ์กฑํ๋ค๋ฉด ํ๋ฝ๋์)
- ํด๋์ค๋ฅผ ๋ง๋ค์ง ์๊ณ CountSort ํ์ดํ๋ ๋ฐฉ๋ฒ์ด ์ข ์ ๊ธฐํด์ ๋ฐ๋ผํด๋ด์ผ๊ฒ ๋ค.## ์ข ๋ง๋ถ
1. [๋ก ํ์คํฐ๋ฒ](https://algospot.com/judge/problem/read/FESTIVAL)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/jongmanbook/festival/Main.java)
- ์ผ๋จ ๋ฌด์ํ๊ฒ ํ์ด๋ณด์๋ค. ๋น์ฐํ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค.๐ญ
- n^3์ n^2์ด๋ผ๋ ์ค์ฌ๋ณด๊ณ ์ถ์ด์, ์ฐพ์๋ณด์๋ค. Prefix Sum์ ์ด์ฉํ๋ฉด ๋ ๊ฒ ๊ฐ์์ ์ ์ฉํ์๋ค.
- ๊ทผ๋ฐ ์ค๋ต์ด๋ค. ๋ ๊ณ ๋ฏผํด๋ด์ผ๊ฒ ๋ค.---
## ์๊ฐํด๋ณด๊ธฐ
1. ์ฃผ์ด์ง ๋ฌธ์์ด์ ์ค๋ณต๋ ๋ฌธ์๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํ๋ ํจ์
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/overlapchar/Solution.java)
2. ๋ฒ๋ธ ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ, ํต ์ ๋ ฌ, ๋จธ์ง ์ ๋ ฌ, ํ ์ ๋ ฌ์ ์ง์ ๊ตฌํํด ๋ณด์
- [๋ฒ๋ธ ์ ๋ ฌ](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/sorting/BubbleSort.javahttps://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/sorting/BubbleSort.java)
- [์ฝ์ ์ ๋ ฌ](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/sorting/SelectionSort.java)
- [ํต ์ ๋ ฌ](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/sorting/QuickSort.java)
- [๋ฒ๋ธ ์ ๋ ฌ(๋จ์ผ ๋ฐฐ์ด)](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/sorting/MergeSortInPlace.java)
- [๋ฒ๋ธ ์ ๋ ฌ](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/sorting/MergeSort.java)
3. ์ ์ ๋ ฌ์ ์ฅ๋จ์ ๊ณผ ๋ณต์ก๋์ ๋ํด ์์๋ณด์
4. count sort์ radix sort์ ์ฝ๋๋ฅผ ์ดํดํด๋ณด๊ณ ์ฅ์ ์ ๋ฌด์์ธ์ง ์์๋ณด์
5. ํด์์ ๋ํด ๋ ๊ณต๋ถํด๋ณด์
6. ์ด์ง ํธ๋ฆฌ๊ฐ ๋ฌด์์ธ์ง ํ์ตํ๋ค.
7. ์ด์ง ๊ฒ์ํธ๋ฆฌ๊ฐ ๋ฌด์์ธ์ง ํ์ตํ๋ค.
8. ํธ๋ฆฌ์ ์ํ์ ๋ํด ํ์ตํ๋ค.
9. ํ์ด ๋ฌด์์ธ์ง์ ํ ์ ๋ ฌ์ ๋ํด ํ์ตํ๋ค.
10. ์ด์ง ํ์์ ๊ตฌํํด๋ณธ๋ค.
- [์ด์ง ํ์](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/search/BinarySearch.java)
- ์ฌ๊ท์ ์ผ๋ก ๊ตฌํํด๋ณธ๋ค.
- ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ตฌํํด๋ณธ๋ค.
11. ์ฌ๊ท ๊ณต๋ถ
- [์ ๋ ฅ๋ ๋ฐฐ์ด์ ํฉ์ ๊ตฌํ๋ ์ฌ๊ทํจ์](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/recursion/ArraySum.java)
์ฌ๊ท์ ์ผ๋ก ์๊ฐํ๊ธฐ๊ฐ ์ฝ์ง๊ฐ ์์๋ค..! ์ฌ๊ท์ ๋ํ ์ฐ์ต์ ๋ง์ด ํด์ผํ ๊ฒ ๊ฐ๋ค.
๊ผฌ๋ฆฌ ์ฌ๊ท๋ก ๋ฐ๊พธ์ด ๋ณด์๋ค!
- [์ ๋ ฅ๋ ๋ฆฌ์คํธ์ ์์์ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ ์ฌ๊ทํจ์](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/recursion/ListCount.java)
๊ผฌ๋ฆฌ์ฌ๊ท๋ก ํด๊ฒฐํด๋ณด์๋ค!
- [์ ๋ ฅ๋ ๋ฆฌ์คํธ์ ๊ฐ์ฅ ํฐ ์๋ฅผ ์ฐพ๋ ์ฌ๊ทํจ์](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/recursion/LargestNumber.java)
- [ํฉํ ๋ฆฌ์ผ์ ๊ตฌํ๋ ์ฌ๊ทํจ์](https://github.com/ksundong/algorithm-solution/blob/master/src/main/java/dev/idion/thinking/recursion/Factorial.java)
๊ผฌ๋ฆฌ์ฌ๊ท๋ก ํด๊ฒฐํด๋ณด์๋ค!---
## SQL
### [ํ๋ก๊ทธ๋๋จธ์ค](https://programmers.co.kr)
1. [์ต๋๊ฐ ๊ตฌํ๊ธฐ](https://programmers.co.kr/learn/courses/30/lessons/59415)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/src/main/resources/sql/programmers/maximum-value/maximum.sql)
- ์์ ์ ์ ๋ต ๋ถ๋ถ์ด Alias๋ฅผ ์ด์ฉํด์ผ ํ ๊ฒ ๊ฐ์์ Alias๋ฅผ ์ด์ฉํ๋ค.
- ํ๋์ ๊ฒฐ๊ณผ๋ง ์๊ตฌํ๋ฏ๋ก LIMIT์ ์ฌ์ฉํ๊ณ ์ ํ๋ค.
- ๊ฐ์ฅ ์ต๊ทผ์ด๋ผ๊ณ ํ์์ผ๋ฏ๋ก, DATETIME์ ORDER BY๋ฅผ ์ด์ฉํ๋ฉด ๋ ๊ฒ ๊ฐ์๋ค.
- ๋ฌธ์ ์ ์๋๋ฅผ ์ต๋ํ ๋ฐ์ํด์ ์ฟผ๋ฆฌ๋ฅผ ๋ ์ค์๋ค.---
## Python
### [LeetCode](https://leetcode.com/)
1. [125. Valid Palindrome](https://leetcode.com/problems/valid-palindrome/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/valid_palindrome/Solution.py)
- ์ฃผ์ด์ง ๋ฌธ์์ด์ด ํฐ๋ฆฐ๋๋กฌ์ด์ง ํ์ธํ๋ผ. ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ผ๋ฉฐ, ์๋ฌธ์์ ์ซ์๋ง์ ๋์์ผ๋ก ํ๋ค.
- ์๋ฌธ์๋ก ๋ง๋ค๊ณ ์๋ ๊ฐ์๋ฅผ ๊ฐ์ง๊ณ ํ๋จํ๋๋ก ๋ง๋ค์๋๋ฐ, ์ค๊ฐ์ ์๋ ๊ฒ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
- ์นด์ดํฐ๋ฅผ ์ฐ๋ฉด ์๋๋ค. ์๊ฐํด๋ณด๋๊น ์๊ณผ ๋ค๋ฅผ ๋์์ ํ์ธํด์ผํ๋๋ฐ... ํ ...
- ์ฌ๋ผ์ด์ฑ์ ํ์ฉํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
2. [344. Reverse String](https://leetcode.com/problems/reverse-string/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/reverse_string/Solution.py)
- ๋ฌธ์์ด์ ๋ค์ง๋ ํจ์๋ฅผ ์์ฑํ๋ผ. ์ ๋ ฅ๊ฐ์ ๋ฌธ์ ๋ฐฐ์ด์ด๋ฉฐ, ๋ฆฌํด ์์ด ๋ฆฌ์คํธ ๋ด๋ถ๋ฅผ ์ง์ ์กฐ์ํ๋ผ.
- ํ์ด์ฌ์ ๋ฌธ์์ด์์ฒด๋ฅผ ์ ๊ทผํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅ ํด์ ๋ฆฌ์คํธ๋ก ์ค ๊ฒ ๊ฐ๋ค.
- ์ค์ ํจ์๋ฅผ ๋ง๋ค๋ฉด ๋ ๊น?
3. [937. Reorder Data in Log Files](https://leetcode.com/problems/reorder-data-in-log-files/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/reorder_log_files/Solution.py)
- ๋ก๊ทธ๋ฅผ ์ฌ์ ๋ ฌํ๋ผ. ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ๋ค. ๋ชจ๋ ๋ก๊ทธ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ๋จ์ด๋ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
1. ๋ก๊ทธ์ ๊ฐ์ฅ ์ ๋ถ๋ถ์ ๋จ์ด๋ ์๋ณ์๋ค.
2. ๋ฌธ์๋ก ๊ตฌ์ฑ๋ ๋ก๊ทธ(let)๊ฐ ์ซ์ ๋ก๊ทธ(dig)๋ณด๋ค ์์ ์จ๋ค.
3. ์๋ณ์๋ ์์์ ์ํฅ์ ๋ผ์น์ง ์์ง๋ง, ๋ฌธ์๊ฐ ๋์ผํ ๊ฒฝ์ฐ ์๋ณ์ ์์ผ๋ก ํ๋ค.
4. ์ซ์ ๋ก๊ทธ๋ ์ ๋ ฅ ์์๋๋ก ํ๋ค.
- ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ์ข ์๊ฐ์ด ๊ฑธ๋ ธ๋ค.
- ๋ฌธ์(let) ๋ก๊ทธ๊ฐ ๋จผ์ ์ค๋ฉฐ, ๋จ์ด์ ์ฌ์ ์์ผ๋ก ์ ๋ ฌ๋๊ณ , ๋จ์ด๊ฐ ๋ค ๋๊ฐ์ ๊ฒฝ์ฐ ์๋ณ์ ๋ค์ ์ซ์๋ก ์ ๋ ฌํ๋ค.
- ์ซ์๋ก๊ทธ๋ ์๋ ์์๋ฅผ ๊ทธ๋๋ก ์ ์งํด์ ์ ๋ ฌํ๋ค.
- ํ์ด์ฌ์ ์ ๋ ฌ๋ฐฉ์์ ์ ๋ชจ๋ฅด๊ฒ ๋ค. ๊ทธ๋์ ๋ต์ ์ฐธ๊ณ ํ๋ค.
- ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ์ ์ด์ฉํด์ ํ์๋ค.
4. [819. Most Common Word](https://leetcode.com/problems/most-common-word/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/most_common_word/Solution.py)
- ๊ธ์ง๋ ๋จ์ด๋ฅผ ์ ์ธํ ๊ฐ์ฅ ํํ๊ฒ ๋ฑ์ฅํ๋ ๋จ์ด๋ฅผ ์ถ๋ ฅํ๋ผ.
- ๋์๋ฌธ์ ๊ตฌ๋ถ์ ํ์ง ์์ผ๋ฉฐ, ๊ตฌ๋์ ๋ํ ๋ฌด์ํ๋ค.
- Counter๋ฅผ ํ์ฉํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
- List Comprehension์ผ๋ก ban๋ ๋จ์ด๋ฅผ ์ ์ธํ๋ ๊ฒ์ด ๋์ ๊ฒ ๊ฐ๋ค.
5. [49. Group Anagrams](https://leetcode.com/problems/group-anagrams/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/group_anagrams/Solution.py)
- ๋ฌธ์์ด ๋ฐฐ์ด์ ๋ฐ์ ์ ๋๊ทธ๋จ ๋จ์๋ก ๊ทธ๋ฃนํํ๋ผ.
- ๊ฐ์ ๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์๋ ๋ฌธ์์ด๋ผ๋ฆฌ ๊ทธ๋ฃนํํ๋ ๋ฌธ์ ๋ค.
- ์ถ๋ ฅ์ ์์๋ ๋ฌด๊ดํ๋ค.
- char ๊ฐ์ ํฉ์ ๋ํด์ map์ ๋ํ key๋ก ํ๊ณ , ๊ฐ์ key๋ฅผ list๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ์ด๋จ๊น?
- ์์คํค ์ฝ๋์ ํฉ์ด ๊ฐ์ ๊ฒฝ์ฐ๊ฐ edge case์๋ค.
- ์ ๋ ฌ์ ํด์ค์ผ ํ๋ ๊ฒ ๊ฐ๋ค.
6. [5. Longest Palindrome Substring](https://leetcode.com/problems/longest-palindromic-substring/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/longest_palindromic_substring/Solution.py)
- ๊ฐ์ฅ ๊ธด ํฐ๋ฆฐ๋๋กฌ ๋ถ๋ถ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ผ.
- ์ด๋ป๊ฒ ์ ๊ทผํด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค. ์ผ๋จ ํจ์ค
7. [1. Two sum](https://leetcode.com/problems/two-sum/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/two_sum/Solution.py)
- ๋ง์ ํ์ฌ ํ๊ฒ์ ๋ง๋ค ์ ์๋ ๋ฐฐ์ด์ ๋ ์ซ์ ์ธ๋ฑ์ค๋ฅผ ๋ฆฌํดํ๋ผ
- ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๋ธ๋ฃจํธ ํฌ์ค๊ฐ ์์ง๋ง, ๋งค์ฐ ๋๋ฆด ๊ฒ์ด๋ค.
- ๋์ ๋๋ฆฌ๋ฅผ ์ฐ๋ ํธ์ด ๊ฐ์ฅ ๋น ๋ฅผ ๊ฒ ๊ฐ๋ค.
8. [42. Trapping Rain Water](https://leetcode.com/problems/trapping-rain-water/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/trapping_rain_water/Solution.py)
- ๋์ด๋ฅผ ์ ๋ ฅ๋ฐ์ ๋น ์จ ํ ์ผ๋ง๋ ๋ง์ ๋ฌผ์ด ์์ผ ์ ์๋์ง ๊ณ์ฐํ๋ผ.
- ๋จ์ํ ๋ ์์ ์ฐจ๋ง ๊ณ์ฐํด์ ์๋๋ ๊ฒ ๊ฐ๋ค.
- ์์ฐจ๋ก ํ์ํ๋ฉฐ ํฌ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด๋ด์ผ๊ฒ ๋ค.
- ๋ฌธ์ ๊ฐ ์ต๊ณ ๋์ด์ ๋๋ฌํ์ ๋, ์ด๋ป๊ฒ ํด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค.
- ์ผ๋จ ํจ์ค
9. [15. 3Sum](https://leetcode.com/problems/3sum/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/3sum/Solution.py)
- ๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ์ ํฉ์ผ๋ก 0์ ๋ง๋ค ์ ์๋ 3๊ฐ์ ์๋ฆฌ๋จผํธ๋ฅผ ์ถ๋ ฅํ๋ผ.
- ๋ธ๋ฃจํธ ํฌ์ค๋ ๊ณ ๋ คํ์ง ๋ง์...
- ํ๋๋ฅผ ์ ํด๋๊ณ Two sum ๋ฌธ์ ๋ก ๋ง๋ค์ด์ผ ํ๋ ๊ฒ ๊ฐ๋ค.
- ํ์ด ์คํจ
10. [561. Array Partition I](https://leetcode.com/problems/array-partition-i/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/array-partition-i/Solution.py)
- n๊ฐ์ ํ์ด๋ฅผ ์ด์ฉํ min(a, b)์ ํฉ์ผ๋ก ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์ถ๋ ฅํ๋ผ.
- ์ ๋ ฌ์ ํด์ ํฉ์ ๊ตฌํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
- ์ฝ๊ฐ ๊ทธ๋ฆฌ๋ํ ํ์ด์ธ ๊ฒ ๊ฐ๋ค.
11. [238. Produc of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/product_of_array_except_self/Solution.py)
- ๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ์ output[i] ๊ฐ ์์ ์ ์ ์ธํ ๋๋จธ์ง ๋ชจ๋ ์์์ ๊ณฑ์ ๊ฒฐ๊ณผ๊ฐ ๋๋๋ก ์ถ๋ ฅํ๋ผ.
- ์ ์ฝ์กฐ๊ฑด์ด ๋๋์ ์ ํ์ง ๋ง๋ผ๋ ๊ฒ์ด ์๋ค. ๋๋์ ์ ํ๋ ๊ฒ์ ์๊ฐํ๋๋ฐ...
- ์ ์ฒดํฉ์ผ๋ก ๋๋๋๊ฒ ์ฌ์ฐ๋๊น ์ด๋ฐ ์ ์ฝ์กฐ๊ฑด์ ์ค ๊ฒ ๊ฐ๋ค.
- ๋ธ๋ฃจํธ ํฌ์ค๋ก ์๋ํด๋ณด์
- ์ญ์ ์๊ฐ์ด๊ณผ๋ก ์คํจํ๋ค.
- ์๋ฃจ์ ์ ๋ณด๋ ์ผ์ชฝ ๊ณฑ์ ์ค๋ฅธ์ชฝ ๋ถํฐ ๊ณฑ์ ํ๋ ๋ฐฉ์์ผ๋ก ํผ๋ค๊ณ ํ๋ค.
12. [121. Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/best_time_to_buy_and_sell_stock/Solution.py)
- ํ ๋ฒ์ ๊ฑฐ๋๋ก ๋ผ ์ ์๋ ์ต๋ ์ด์ต์ ์ฐ์ถํ๋ผ.
- ์ ๋ ฌ์ ํ ์ ์๋ค.
- ์์๊ฐ์ 0์ผ๋ก ๋์ด์ผ ํ ๊ฒ ๊ฐ๋ค.
- ๋งค์ฐ ๋๋ ธ๋ค. ๋ ์ข์ ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํด๋ด์ผ๊ฒ ๋ค.
- O(n) ํ์ด list slice๋ฅผ ํ์ง ์๊ณ , ์ฒ์๋ถํฐ ์ต๋ ์ด์ต๊ณผ ์ต์ ๊ฐ๊ฒฉ์ ๊ฐฑ์ ํด๋๊ฐ๋ค.
13. [234. Palindrome Linked List](https://leetcode.com/problems/palindrome-linked-list/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/palindrome_linked_list/Solution.py)
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ๊ฐ ํฐ๋ฆฐ๋๋กฌ ๊ตฌ์กฐ์ธ์ง ํ๋ณํ๋ผ.
- deque๋ก ๋ง๋ค์ด์ ์ ๋ค๋ฅผ popํด์ ๋น๊ตํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
- ํฐ๋ฆฐ๋๋กฌ์ deque๋ฅผ ํ์ฉํ๊ธฐ!
- ์ฑ ์ ๋ณด๋ ๋ฐ๋๋ฅผ ์ด์ฉํ ํ์ด๊ฐ ์์๋ค.
14. [21. Merge Two Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/merge_two_sorted_lists/Solution.py)
- ์ ๋ ฌ๋์ด ์๋ ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ํฉ์ณ๋ผ.
- ์๋ก์ด ๋ ธ๋๋ฅผ ๋ง๋ค์ด์ ๋ถ์ฌ๋๊ฐ๋ฉด ๋์ง ์์๊น?
- ์ ๋ ฌ์ด ๋์ด์๊ธฐ ๋๋ฌธ์ ๋น๊ต๋ฅผ ํด๋๊ฐ๋ฉด์ ๋ถ์ด๋ฉด ๋๋ค.
- ๋ ธ๋๋ ์ด๊ธฐ๊ฐ์ด 0์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ ์ ํ ์ด์ฉํด์ผํ๋ค.
- ๋๋ฏธ๋ ธ๋๋ ๋ฐํํ๋ฉด ์๋๋ฏ๋ก next๋ฅผ ์ด์ฉํ์ฌ ๋ฐํํ๋ค.
15. [206. Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/reverse_linked_list/Solution.py)
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ๋ค์ง์ด๋ผ.
- ๋ฐ๋ณต๋ฌธ์ผ๋ก๋ ๊ตฌํ์ด ๊ฐ๋ฅํ๊ณ , ์ฌ๊ท๋ก๋ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฐ๋ณต์ผ๋ก ๊ตฌํํ ๋, ์ฃผ์ํ ์ ์ ๋ค์คํ ๋น์ ์ด์ฉํด์ผ ํ๋ฆฐ๋ค๋ ์ ์ด๋ค.
- ์ฌ๊ท๋ ์ ์ดํด๊ฐ ์๊ฐ๋ค...
16. [2. Add Two Numbers](https://leetcode.com/problems/add-two-numbers/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode//Solution.py)
- ์ญ์์ผ๋ก ์ ์ฅ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์ซ์๋ฅผ ๋ํ๋ผ.
- ๋น ๋ฆฌ์คํธ๋ ์ฃผ์ด์ง์ง ์๋๋ค.
- ์์๋ง ์ฃผ์ด์ง๋ค.
- ๋ ธ๋๋ ๋จ ํ ๊ฐ์ ์ซ์๋ง ๊ฐ์ง ์ ์๋ค.
- 10์ ๋๋จธ์ง ์ฐ์ฐ์ ์ํํด์ ์ ์ฅํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. ์๋๋ค... ์์๋ฆฌ์ ๋ถ์ฌ์ค์ผ ํ๋ค...
- ๋ํด์ ์ญ์ ์ ๋ ฌํ๊ฑฐ๋, ์ญ์ ์ ๋ ฌ์ ํ๋ฉด์ ๋ํ๋ฉด ๋๊ฒ ์ง?
- ํต๊ณผ๋ ํ๋๋ฐ ๋๋ฌด ๋๋ฆฌ๋ค ใ ใ ..
- ์ฑ ์์ ์ ๊ฐ์ฐ๊ธฐ๋ฅผ ์์ฉํ์ฌ ํ์ด๋ฅผ ์งํํ๋ค. ๊น๋ํ๊ฒ ํ๋ ธ๋ค.
17. [24. Swap Nodes in Pairs](https://leetcode.com/problems/swap-nodes-in-pairs/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/swap_nodes_in_pairs/Solution.py)
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฅ ๋ฐ์ ํ์ด(pair)๋จ์๋ก ์ค์ํ๋ผ.
- ๋ ธ๋๋ฅผ ๋ ๊ฐ์ฉ ๊ฑด๋ ๋ฐ๋ฉด์ ๊ฐ๊ฐ์ ์ค์ํ๊ฒํ๋ฉด ๋์ง ์์๊น?
- ์ฌ๊ท๋ฅผ ์ฌ์ฉํ๋ฉด ๋งจ ๋ฐ์์๋ถํฐ ๋ณ๊ฒฝ๋จ์ ํจ๊ณผ์ ์ผ๋ก ํํํ ์ ์์ ๊ฒ ๊ฐ๋ค.
- ๊ฒฐ๊ตญ ๋ชปํ์๋ค. ใ ใ
18. [328. Odd Even Linked List](https://leetcode.com/problems/odd-even-linked-list/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/odd_even_linked_list/Solution.py)
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ํ์ ๋ ธ๋ ๋ค์์ ์ง์ ๋ ธ๋๊ฐ ์ค๋๋ก ์ฌ๊ตฌ์ฑํ๋ผ. ๊ณต๊ฐ ๋ณต์ก๋ O(1), ์๊ฐ ๋ณต์ก๋ O(n)์ ํ์ดํ๋ผ.
- ์ด๋ป๊ฒ ํ๋ฉด ์ฐ์ํ๊ฒ ํ์ดํ ์ ์์๊น? ๊ทธ๋ฆผ์ ๊ทธ๋ ค๊ฐ๋ฉฐ ํ์ด๋ด์ผ๊ฒ ๋ค.
- ๊ทธ๋ฆผ์ ๊ทธ๋ ค๊ฐ๋ฉด์ ํ์๋๋ฐ 30๋ถ ์ ๋ ๊ฑธ๋ ธ๋ค. ํ...
19. [92. Reverse Linked List II](https://leetcode.com/problems/reverse-linked-list-ii/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/reverse_linked_list_ii/Solution.py)
- ์ธ๋ฑ์ค m์์ n๊น์ง๋ฅผ ์ญ์์ผ๋ก ๋ง๋ค์ด๋ผ. ์ธ๋ฑ์ค m์ 1๋ถํฐ ์์ํ๋ค.
- ์ญ์ ๊ทธ๋ฆผ์ ๊ทธ๋ ค์ ์ฝ๋๋ฅผ ๋์ถฉ ์๊ฐํด๋ณด์๋ค.
- ์กฐ๊ฑด์ ๋ฐ๋ผ์ ๋น ๋ ธ๋๊ฐ ๋ค์ด์ฌ ์ผ์ ์์ ๊ฒ ๊ฐ๋ค.
- ๊ทธ๋ฆผ์ ๊ทธ๋ ค๊ฐ๋ฉด์ ํธ๋๊น ํ์คํ ์ ํ๋ฆฌ๋ ๊ฒ ๊ฐ๋ค.
20. [20. Valid Parentheses](https://leetcode.com/problems/valid-parentheses/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/valid_parentheses/Solution.py)
- ๊ดํธ๋ก ๋ ์ ๋ ฅ๊ฐ์ด ์ฌ๋ฐ๋ฅธ์ง ํ๋ณํ๋ผ.
- ์คํ์ ํ์ฉํ๋ ์ ํ์ ์ธ ๋ฌธ์ ์๋ค.
- ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ ๊ฒฝ์ฐ์ง ์์๋๋ ์คํจ๋ฅผ ๋ง์ดํ๋ค.
- ์ง์ค๋ ฅ์ด ๋ฎ์๋ค.
21. [316. Remove Duplicate Letters](https://leetcode.com/problems/remove-duplicate-letters/)
- ์ด๋ ค์ด ๋ฌธ์ ๋ผ ์ผ๋จ ํจ์ค
22. [739. Daily Temperatures](https://leetcode.com/problems/daily-temperatures/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/daily_temperatures/Solution.py)
- ๋งค์ผ์ ํ์จ ์จ๋ ๋ฆฌ์คํธ T๋ฅผ ์ ๋ ฅ๋ฐ์์, ๋ ๋ฐ๋ปํ ๋ ์จ๋ฅผ ์ํด์๋ ๋ฉฐ์น ์ ๋ ๊ธฐ๋ค๋ ค์ผ ํ๋์ง๋ฅผ ์ถ๋ ฅํ๋ผ.
- ๊ทธ๋ฆผ์ ๊ทธ๋ ค๊ฐ๋ฉด์ ์์ฑํ๋ฉด ๋ ์๋ ๊ฒ ๊ฐ๋ค.
- ์ธ์ ์คํ์์ ๋นผ๊ณ , ๋ฃ๋์ง๋ฅผ ๋ช ํํ ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
- ์ธ๋ฑ์ค์ ์ฐจ์ด๊ฐ ์ผ ์๊ฐ ๋ ๊ฒ ๊ฐ๋ค.
23. [225. Implement Stack Using Queues](https://leetcode.com/problems/implement-stack-using-queues/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/implement_stack_using_queues/Solution.py)
- ํ๋ฅผ ์ด์ฉํด ๋ค์ ์ฐ์ฐ์ ์ง์ํ๋ ์คํ์ ๊ตฌํํ๋ผ.
- push(x): ์์ x๋ฅผ ์คํ์ ์ฝ์ ํ๋ค.
- pop(): ์คํ์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ญ์ ํ๋ค.
- top(): ์คํ์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๊ฐ์ ธ์จ๋ค.
- empty(): ์คํ์ด ๋น์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํดํ๋ค.
- ํ์ด์ฌ์ด ๋๋ฌด ๊ฐ๋ ฅํด์ ์คํ๋ ค ๋ ์ด๋ ค์ด ๋ฌธ์ ์๋ค.
24. [232. Implement Queue using Stacks](https://leetcode.com/problems/implement-queue-using-stacks/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/implement_queue_using_stacks/Solution.py)
- ์คํ์ ์ด์ฉํด ๋ค์ ์ฐ์ฐ์ ์ง์ํ๋ ํ๋ฅผ ๊ตฌํํ๋ผ.
- push(x): ์์ x๋ฅผ ํ ๋ง์ง๋ง์ ์ฝ์ ํ๋ค.
- pop(): ํ ์ฒ์์ ์๋ ์์๋ฅผ ์ ๊ฑฐํ๋ค.
- peek(): ํ ์ฒ์์ ์๋ ์์๋ฅผ ์กฐํํ๋ค.
- empty(): ํ๊ฐ ๋น์ด์๋์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํดํ๋ค.
- ์์ ๋ฌธ์ ๋ ๋๊ฐ์ด ํ๋ฉด ์ํ๋ฆฐ๋ค.
25. [622. Design Circular Queue](https://leetcode.com/problems/design-circular-queue/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/design_circular_queue/Solution.py)
- ์ํ ํ๋ฅผ ๋์์ธํ๋ผ.
- ์๊ฐ๋งํผ ์ฝ๊ฒ ํ๋ฆฌ์ง ์๋๋ค. ์ผ๋จ ํ์ด์ฌ์ ๋ฐฐ์ด์ด ์๋ค...
- ๋ฐฐ์ด์ฒ๋ผ ํ๊ธฐ๊ฐ ๊น๋ค๋ก์ ๋ค.
- -1์ ๋ฆฌํดํ ๋, if else ๋ฌธ์ ์ธ ์ ์๋๊ฑด ์ ๊ธฐํ ๊ฒ ๊ฐ๋ค.
26. [641. Design Circular Dequeue](https://leetcode.com/problems/design-circular-deque/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/design_circular_deque/Solution.py)
- ๋ค์ ์ฐ์ฐ์ ์ ๊ณตํ๋ ์ํ ๋ฐํฌ๋ฅผ ๋์์ธํ๋ผ.
- `MyCircularDeque(k)`: ๋ฐํฌ ์ฌ์ด์ฆ๋ฅผ k๋ก ์ง์ ํ๋ ์์ฑ์๋ค.
- `insertFront()`: ๋ฐํฌ ์ฒ์์ ์์ดํ ์ ์ถ๊ฐํ๊ณ ์ฑ๊ณตํ ๊ฒฝ์ฐ True๋ฅผ ๋ฆฌํดํ๋ค.
- `insertLast()`: ๋ฐํฌ ๋ง์ง๋ง์ ์์ดํ ์ ์ถ๊ฐํ๊ณ ์ฑ๊ณตํ ๊ฒฝ์ฐ True๋ฅผ ๋ฆฌํดํ๋ค.
- `deleteFront()`: ๋ฐํฌ ์ฒ์์ ์์ดํ ์ ์ญ์ ํ๊ณ ์ฑ๊ณตํ ๊ฒฝ์ฐ True๋ฅผ ๋ฆฌํดํ๋ค.
- `deleteLast()`: ๋ฐํฌ ๋ง์ง๋ง์ ์์ดํ ์ ์ญ์ ํ๊ณ ์ฑ๊ณตํ ๊ฒฝ์ฐ True๋ฅผ ๋ฆฌํดํ๋ค.
- `getFront()`: ๋ฐํฌ์ ์ฒซ ๋ฒ์งธ ์์ดํ ์ ๊ฐ์ ธ์จ๋ค. ๋ฐํฌ๊ฐ ๋น์ด ์๋ค๋ฉด -1์ ๋ฆฌํดํ๋ค.
- `getRear()`: ๋ฐํฌ์ ๋ง์ง๋ง ์์ดํ ์ ๊ฐ์ ธ์จ๋ค. ๋ฐํฌ๊ฐ ๋น์ด ์๋ค๋ฉด -1์ ๋ฆฌํดํ๋ค.
- `isEmpty()`: ๋ฐํฌ๊ฐ ๋น์ด ์๋์ง ์ฌ๋ถ๋ฅผ ํ๋ณํ๋ค.
- `isFull()`: ๋ฐํฌ๊ฐ ๊ฐ๋ ์ฐจ ์๋์ง ์ฌ๋ถ๋ฅผ ํ๋ณํ๋ค.
- ํ์ด์ฌ ๋ฑ ๊ตฌํ์ฒด๋ฅผ ์ฌ์ฉํ๋ค. ๋น์ฐํ ์ด๋ ๊ฒ ํธ๋๊ฑด ์๋๊ฒ ์ง -ใ -... ๋ฌธ์ ์กฐ๊ฑด์ ์ฐ์ง๋ง๋ผ๊ณ ๋์ด์์๋ค.
- ์ฑ ์ ๋ณด๋๊น ListNode๋ฅผ ์ฐ๋๋ฐ, ์ ์๊ฐ ๋ฑํ ์์ด์ ์๋์ค ์์๋๋ฐ, Python์ผ๋ก ํด๋ณด๋๊น ๋๋ค.. ๋ญ์ง..
- ํ์ด์ฌ์ ์ข๊ธดํ๋ฐ ๊ฐ๋์ ์ง์ฆ์ด ๋๋ค... ,๋ฅผ .์ผ๋ก ์ผ๋๋ฐ ์ค๋ฅ๊ฐ ์๋์ ๋ญ๊ฐ๋ฌธ์ ์ง ํ์ฐธ ์ฐพ์๋ค.
- ๊ทธ๋ฆฌ๊ณ left, right๋ฅผ ๊ตณ์ด ์ ์ธํ์ง ์์๋ ์ธ ์ ์๋ค๋๊ฑธ ์์๋ค. ์ ๊ธฐํ๋ค..
27. [23. Merge k Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/merge_k_sorted_lists/Solution.py)
- k๊ฐ์ ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ฅผ 1๊ฐ์ ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ก ๋ณํฉํ๋ผ.
- ํ์ด์ฌ์์ ํ์ ์ด๋ป๊ฒ ์จ์ผํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค...
- ํ์ด๋ฐฉ๋ฒ๋ง ์๋ฉด ์ฌ์ด ๋ฌธ์ ๋ผ๊ณ ํ๋ค.
- ํ์ด์ฌ์ ํ์ ์ต์ํ์ผ๋ก ๊ตฌํ๋์ด์๋ค๊ณ ํ๋ค.
- ์ดํด๋ ํ์ง๋ง ๋ค์ ํ์ด๋ด์ผ๊ฒ ๋ค.
28. [706. Design HashMap](https://leetcode.com/problems/design-hashmap/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/design_hashmap/Solution.py)
- ๋ค์์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํด์๋งต์ ๋์์ธํ๋ผ.
- put(key, value): ํค, ๊ฐ์ ํด์๋งต์ ์ฝ์ ํ๋ค. ๋ง์ฝ ์ด๋ฏธ ์กด์ฌํ๋ ํค๋ผ๋ฉด ์ ๋ฐ์ดํธํ๋ค.
- get(key): ํค์ ํด๋นํ๋ ๊ฐ์ ์กฐํํ๋ค. ๋ง์ฝ ํค๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด -1์ ๋ฆฌํดํ๋ค.
- remove(key): ํค์ ํด๋นํ๋ ํค, ๊ฐ์ ํด์๋งต์์ ์ญ์ ํ๋ค.
- ๊ทธ๋ฅ k๊ฐ ๊ณง list์ธ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ค. ํฌ๊ธฐ๋ ๋์ผํ๊ฒ ์ง์ ํ๋ค. ์ด๋ ๊ฒ ๊ตฌํํ ์ด์ ๋ ๊ฐ์ฅ ๊ณต๊ฐ์ ๋ง์ด ๋จน์ง๋ง, ๊ฐ์ฅ ์๋๊ฐ ๋น ๋ฆ์ ์์ํ ์ ์์ด์๋ค.
- ํด์๋ฅผ ํ ๊ฑฐ๋ผ๋ฉด ์๋ง ์ฌ์ด์ฆ๋ฅผ ์ง์ ํ๊ณ , %์ฐ์ฐ์๋ฅผ ํ์ฉํ์ง ์์์๊น?
- default dict๋ฅผ ์ฐ๋ฉด ํ์ด์ฌ ์ค์์ ๋น ๋ฅธํธ์ด๋ค.
- ์ฑ ์ ํด์๋งต์ ์ง์ ๊ตฌํํ๋ค. ํด์ฑ์ ๊ทธ๋ฅ ๋ชจ๋๋ผ ์ฐ์ฐ๋ง ํ๋ค.
29. [771. Jewels and Stones](https://leetcode.com/problems/jewels-and-stones/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/jewels_and_stones/Solution.py)
- J๋ ๋ณด์์ด๋ฉฐ, S๋ ๊ฐ๊ณ ์๋ ๋์ด๋ค. S์๋ ๋ณด์์ด ๋ช ๊ฐ๋ ์์๊น? ๋์๋ฌธ์๋ ๊ตฌ๋ถํ๋ค.
- ๋จผ์ ์๊ตฌ์ฌํญ์ ๋ณด๋ ๋ฌธ์ ํ๋ํ๋๊ฐ ์ข ๋ฅ์ ํด๋นํ๋ ๊ฒ ๊ฐ๋ค.
- defaultdict๋ฅผ ํ์ฉํด์ผ ํ ๊ฒ ๊ฐ๋ค.
- ๋ฌธ์ ์๊ตฌ์ฌํญ์ ๋ณด๋ J๋ ์ค๋ณต๋์ง ์๋ ๋ฌธ์์ด์ธ ๊ฒ ๊ฐ๋ค.
- ์นด์ดํฐ๋ฅผ ์ด์ฉํ๋ค. ํ์ด๋ ์นด์ดํฐ๋ฅผ ์ด๋ค. ์๋๋ 32ms
- ํ์ด์จ๋ํ ํ์ด๊ฐ ์ ์ผ ๋นจ๋๋ค. ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ์ ์ฐธ ์ ๊ธฐํ๋ค.
30. [3. Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/longest_substring_without_repeating_characters/Solution.py)
- ์ค๋ณต ๋ฌธ์๊ฐ ์๋ ๊ฐ์ฅ ๊ธด ๋ถ๋ถ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ฆฌํดํ๋ผ.
- ์์๋๋ก ํ์ํ๋ฉด์ ๊ฐ์ ๋ฌธ์๊ฐ ๋์ ๋๋ฆฌ์ ์์ผ๋ฉด ๊ธธ์ด๋ฅผ ์ฆ๊ฐ์ํค๊ณ , ์์ผ๋ฉด ์ด๊ธฐํ์์ผ์ ์ต๋ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ค.
- ์ค๋ณต๋ ๋ฌธ์๊ฐ ๋ฑ์ฅํ์ง๋ง ๋ค๋ฅธ๊ฒ ๋ ๊ธด edge case๊ฐ ์กด์ฌํ๋ค. (dvdf)
- ํ์ด๋ฅผ ๋ดค๋๋ฐ ๋ญ๋ง์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ค. ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๋ฐฐ์ฐ๊ณ ๋ค์ ํ์ด๋ณด์ง๋ญ...
31. [347. Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/top_k_frequent_elements/Solution.py)
- k๋ฒ ์ด์ ๋ฑ์ฅํ๋ ์์๋ฅผ ์ถ์ถํ๋ผ.
- ๋ฌธ์ ์ค๋ช ์ด ์ด์ํ๋ฏ.. k ์์๊น์ง ๋ฝ์๋ด๋ ๋ฏํ ์์ ์ผ์ด์ค์.
- Counter์ most_common์ ํ์ฉํด์ ํ์๋ค.
- zip์ด๋ asterisk ์๊ธฐ๊ฐ ๋์ค๋๋ฐ ๋ด๋ ์ดํด๊ฐ ์๊ฐ๋ค. ์ฌ๋ฏธ์๋ค.
32. [200. Number of Islands](https://leetcode.com/problems/number-of-islands/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/number_of_islands/Solution.py)
- 1์ ์ก์ง๋ก, 0์ ๋ฌผ๋ก ๊ฐ์ ํ 2D ๊ทธ๋ฆฌ๋ ๋งต์ด ์ฃผ์ด์ก์ ๋, ์ฌ์ ๊ฐ์๋ฅผ ๊ณ์ฐํ๋ผ.(์ฐ๊ฒฐ๋ 1๋ค์ ํ๋๋ก ๊ณ์ฐํ๋ค.)
- ๋ญ๊ฐ ์ด๋ป๊ฒ ํ๋ฉด ๋ ์ง๊ฐ ๋ช ํํ์ง ์๋ค... DFS, BFS ๋ฌธ์ ๋ฅผ ์ํ์ด๋ด์ ๊ทธ๋ฐ ๊ฒ ๊ฐ๋ค ใ ใ
- ๋ฐฉ๋ฌธํ ๊ณณ์ ์ฒดํฌํ๋ ๊ฒ์ด ์ค์ํ ๊ฒ ๊ฐ๋ค. ์ฑ ์ ์ค๋ช ์ ํ์ธํด๊ฐ๋ฉด์ ์ ๋ต์ ์ธ์ ๋๋ฐ ๋น์ทํ๊ฒ ํผ ๊ฒ ๊ฐ๋ค.
- ํ์ด์ฌ์๋ ํจ์ ์์ ํจ์๋ฅผ ์ ์ธํ ์ ์๋ ์ค์ฒฉ ํจ์๋ผ๋ ๊ฒ์ด ์๋ค. ์ค์ฝํ ๋๋ฌธ์ ์ ๋ฌํด์คฌ๋ ๋ณ์๋, self๊ฐ ์ฌ๋ผ์ ธ์ ์ข์ ๊ฒ ๊ฐ๋ค.
33. [17. Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/letter_combinations_of_a_phone_number/Solution.py)
- 2์์ 9๊น์ง ์ซ์๊ฐ ์ฃผ์ด์ก์ ๋ ์ ํ ๋ฒํธ๋ก ์กฐํฉ ๊ฐ๋ฅํ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ถ๋ ฅํ๋ผ
- ๋ฌธ์ ์กฐํฉ์ ๊ตฌํ๋ ๊ฒ์ด๋ผ์ ๊ทธ ์ซ์๋ก ๊ฐ๋ฅํ ๋ฌธ์์ ๊ฒฝ์ฐ๋ค์ ์กฐํฉํด์ ์ถ๋ ฅํด์ผ ํ ๊ฒ ๊ฐ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์์๊ฐ ์ ํด์ ธ์์ด์ ์ฌ์ด ๊ฒ ๊ฐ๋ค.
- ๊ทธ๋ฅ ๊ฐ๋ฅํ ๋ฌธ์๋ค์ ์ฃ๋ค ๋ฆฌ์คํธ์ ๋ฃ๊ณ ํฉ์น๋ ์์ผ๋ก ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
- ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ๋ฐ ํ์ด์ฌ์ ๊ฐ๋ ฅํจ์ ๋๋ ์ ์๋ ๋ฌธ์ ์๋ค.
34. [46. Permutations](https://leetcode.com/problems/permutations/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/permutations/Solution.py)
- ์๋ก ๋ค๋ฅธ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฐ๋ฅํ ๋ชจ๋ ์์ด์ ๋ฆฌํดํ๋ผ
- ํ์ด์ฌ์ ๋ด์ฅ๋ชจ๋์ธ itertools๋ฅผ ํ์ฉํ๋ฉด ๊ฐ๋จํ๊ฒ ํ ์ ์๋ค.
- ์ฐธ๊ณ : https://medium.com/@dltkddud4403/python-%EC%88%9C%EC%97%B4-%EC%A1%B0%ED%95%A9-%EA%B5%AC%ED%98%84-5e496e74621c
- ์ฌ๊ท๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ค. ๋จ, ํ์ด์ฌ์์๋ itertools๊ฐ C์ธ์ด๋ก ๋์ด์์ด ์ฑ๋ฅ์ ๋ ์ข๋ค.
35. [77. Combinations](https://leetcode.com/problems/combinations/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/combinations/Solution.py)
- ์ ์ฒด ์ n์ ์ ๋ ฅ๋ฐ์ k๊ฐ์ ์กฐํฉ์ ๋ฆฌํดํ๋ผ.
- itertools๊ฐ ์ฑ๋ฅ๋ ์ข๊ณ ํ์ด์๋๋ ๋น ๋ฅด๋ค.
- ์ฌ๊ท๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ ํด๋์.
36. [39. Combination Sum](https://leetcode.com/problems/combination-sum/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/combination_sum/Solution.py)
- ์ซ์ ์งํฉ candidates๋ฅผ ์กฐํฉํ์ฌ ํฉ์ด target์ด ๋๋ ์์๋ฅผ ๋์ดํ๋ผ. ๊ฐ ์์๋ ์ค๋ณต์ผ๋ก ๋์ด ๊ฐ๋ฅํ๋ค.
- ์ด๋ป๊ฒ ๋ง๋ค๋ค๋ณด๋ ํต๊ณผํ๋ ๋ก์ง์ด ๋์๋ค.
- ์ค๋ณต์กฐํฉ์ start ๊ฐ์ ๊ทธ๋๋ก ๋๊ฒจ์ฃผ๊ณ , for ๋ฃจํ๋ฅผ ๋๋ ๋ง๋ค ์ฆ๊ฐ์์ผ์ฃผ๋ ๊ตฌ์กฐ๋ก ๋ง๋ค๋ฉด ๋๋ ๊ฒ ๊ฐ๋ค.
- start ๊ฐ์ ์์ด๋๋, ์์น๋ง ๋ค๋ฅธ ์ค๋ณต๋๋ ๊ฐ์ด ๋์ถ๋์๋ค.
37. [78. Subsets](https://leetcode.com/problems/subsets/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/subsets/Solution.py)
- ๋ชจ๋ ๋ถ๋ถ ์งํฉ์ ๋ฆฌํดํ๋ผ.
- ์กฐํฉ ์ฝ๋๋ฅผ ํ์ฉํด๋ณด๋ ค๊ณ ํ๋๋ฐ, ๊ฒฐ๊ณผ์ ์ผ๋ก ์คํจ...
- ํ์ด๋ฅผ ์ฐธ์กฐํ๋ค.
38. [332. Reconstruct Itinerary](https://leetcode.com/problems/reconstruct-itinerary/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/reconstruct_itinerary/Solution.py)
- [from, to]๋ก ๊ตฌ์ฑ๋ ํญ๊ณต๊ถ ๋ชฉ๋ก์ ์ด์ฉํด JFK์์ ์ถ๋ฐํ๋ ์ฌํ ์ผ์ ์ ๊ตฌ์ฑํ๋ผ. ์ฌ๋ฌ ์ผ์ ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ ์ดํ์(Lexical Order)์ผ๋ก ๋ฐฉ๋ฌธํ๋ค.
- ๊ทธ๋ํ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํด์ผํ ์ง ๋ง๋งํ๋ค.
- ๊ทธ๋ํ ๊ตฌ์ฑ ์์ด ํ๋ค๊ฐ, ๋ฌดํ๋ฃจํ์ ๋น ์ ธ๋ฒ๋ ธ๋ค.
- ํ์ด๋ฅผ ์ฐธ๊ณ ํ๋ค. defaultdict๋ฅผ ์ฌ์ฉํ๋๋ผ..
- ์ฌ๊ท ํ์ด์ ์ต์ํด์ง์.
39. [207. Course Schedule](https://leetcode.com/problems/course-schedule/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/course_schedule/Solution.py)
- 0์ ์๋ฃํ๊ธฐ ์ํด์๋ 1์ ๋๋ด์ผ ํ๋ค๋ ๊ฒ์ [0,1] ์์ผ๋ก ํํํ๋ n๊ฐ์ ์ฝ์ค๊ฐ ์๋ค. ์ฝ์ค ๊ฐ์ n๊ณผ ์ด ์๋ค์ ์ ๋ ฅ์ผ๋ก ๋ฐ์์ ๋ ๋ชจ๋ ์ฝ์ค๊ฐ ์๋ฃ ๊ฐ๋ฅํ์ง ํ๋ณํ๋ผ.
- ๊ทธ๋ํ๊ฐ ์ํ๊ตฌ์กฐ์ธ์ง ํ์ ํ๋ ๋ฌธ์ ์ธ๋ฐ, ์ฃผ์ด์ง numCourses๋ฅผ ํ์ฉํ๋ ค๊ณ ํด๋ดค๋๋ฐ, ์ด๋๋ค ์ฐ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค.
- ์์ ์ผ์ด์ค๋ฅผ ๋ง์กฑํ๋ ์ฝ๋๋ ์ง์ง ๋ชปํ๋ค.
- ์ํ๊ตฌ์กฐ๋ฅผ ํ์ธํ๋ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํด์ ์์ฑํ๋ค.
- ๊ฐ์ง์น๊ธฐ๋ฅผ ์ด์ฉํ ์ต์ ํ๋ฅผ ์ฌ์ฉํ๋ค.
40. [743. Network Deplay Time](https://leetcode.com/problems/network-delay-time/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/network_delay_time/Solution.py)
- K๋ถํฐ ์ถ๋ฐํด ๋ชจ๋ ๋ ธ๋๊ฐ ์ ํธ๋ฅผ ๋ฐ์ ์ ์๋ ์๊ฐ์ ๊ณ์ฐํ๋ผ. ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ -1์ ๋ฆฌํดํ๋ค. ์ ๋ ฅ๊ฐ (u, v, w)๋ ๊ฐ๊ฐ ์ถ๋ฐ์ง, ๋์ฐฉ์ง, ์์ ์๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์ ์ฒด ๋ ธ๋์ ๊ฐ์๋ N์ผ๋ก ์ ๋ ฅ๋ฐ๋๋ค.
- ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฉด ์ฝ๊ฒ ํ๋ฆฌ๋ ๋ฌธ์ ์๋ค.
- ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ํ ๋ฒ ์ง์ ๊ตฌํํด๋ณด๋ ์๊ฐ์ ๊ฐ์ง๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค.
41. [787. Cheapest Flights Within K Stops](https://leetcode.com/problems/cheapest-flights-within-k-stops/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/cheapest_filghts_within_k_stops/Solution.py)
- ์์์ ์์ ๋์ฐฉ์ ๊น์ง์ ๊ฐ์ฅ ์ ๋ ดํ ๊ฐ๊ฒฉ์ ๊ณ์ฐํ๋, K๊ฐ์ ๊ฒฝ์ ์ง ์ด๋ด์ ๋์ฐฉํ๋ ๊ฐ๊ฒฉ์ ๋ฆฌํดํ๋ผ. ๊ฒฝ๋ก๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ -1์ ๋ฆฌํดํ๋ค.
- ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์์ฉํด์ผ ํ๋ค. ์นด์ดํธ๋ฅผ ๋ฐ์์ ํด์ผํ๋?
- dist ๋ฐฐ์ด์ ๋ฃ๋ ๋ฐฉ์์ผ๋ก ํ๋๋ ์ด์ํ๊ฒ ์ค๋ฅ๊ฐ ๋ฌ๋ค. ์๋ง ๋๊น์ง ๋๋ฌํ์ง ์์๋ค๊ณ ํ์ ํ ๋ฏ.. ๊ทธ๋์ ์ฑ ์ ์ฐธ๊ณ ํด์ ๊ทธ๋ฅ ๊ฐ์์ง ๋, ๋ฐํํ๋ ์์ผ๋ก ์ฒ๋ฆฌํ๋ค.
42. [104. Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/maximum_depth_of_binary_tree/Solution.py)
- ์ฃผ์ด์ง ์ด์ง ํธ๋ฆ์ ์ต๋ ๊น์ด๋ฅผ ๊ตฌํ๋ผ.
- ์ฌ๊ท์ ์ผ๋ก ํ์ํ๋๋ก ํ๋ค. (44ms)
- ํ์ด๋ BFS๋ฅผ ์ฌ์ฉ (52ms) ์ ๋ ๋๋ฆฌ์ง...
43. [543. Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/diameter_of_binary_tree/Solution.py)
- ์๋ก์ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๋จผ ๋ ธ๋์ ๊ฑฐ๋ฆฌ๋ฅผ ๋ฐํํ๋ผ. ๋ฃจํธ๋ฅผ ํตํ ์๋ ์๊ณ ํตํ์ง ์์์๋ ์๋ค.
- ๊ฑฐ๋ฆฌ๋ ๊ฐ์ ์ ๊ฐ์๋ก ๋ํ๋ผ ์ ์๋ค.
- ์ด์งํธ๋ฆฌ์ ํน์ฑ์ ๋ฃจํธ๋ ธ๋๋ฅผ ์๊ฑฐ์น๊ณ ๋ํ๋ด๊ธด ํ๋ค๊ฒ ๊ฐ๋ค๊ณ ์ฒ์์ ์๊ฐํ๋ค.
- ํ์ด๊ฐ ๋ญ๊ฐ ์๋ชป๋ฌ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง dfs๋ก ํ์ดํ๋๋ก ํ๋ค. ๋๋ ๋ค๋ฅธ ์ฌ๋ ํ์ด๋ฅผ ์ฐธ๊ณ ํด์ `nonlocal`์ ์ฌ์ฉํ๋ค.
- ์ฑ ์ ํ์ด๋ dfs๋ฅผ ์ฌ์ฉํ๊ณ ํด๋์ค ๋ณ์๋ฅผ ์ฌ์ฉํ๋ค.
44. [687. Longest Univalue Path](https://leetcode.com/problems/longest-univalue-path/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/longest_univalue_path/Solution.py)
- ๊ฐ์ ๊ฐ์ ๊ฐ์ง ๋ ธ๋๊ฐ์ ๊ฑฐ๋ฆฌ์ค ๊ฐ์ฅ ๊ธด ๊ธธ์ด๋ฅผ ๋ฐํํ๋ผ.
- ๋ญ๊ฐ Easy๋ผ๋ ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ๋ค...
- Leet Code์ ํ์ด๋ฅผ ์ฐธ๊ณ ํ๋ค.
45. [226. Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/invert_binary_tree/Solution.py)
- ์ข ์ฐ ๋ ธ๋๋ฅผ ๋ฐ์ ํ๋ผ.
- ํ์ด์ฌ ์ฌ๊ธฐ๋ค.
46. [617. Merge Two Binary Trees](https://leetcode.com/problems/merge-two-binary-trees/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/merge_two_binary_trees/Solution.py)
- ๋ ์ด์ง ํธ๋ฆฌ๋ฅผ ๋ณํฉํ๋ผ. ์ค๋ณต๋๋ ๋ ธ๋๋ ๊ฐ์ ํฉ์ฐํ๋ค.
- ๊ฐ๋จํ ์ฌ๊ท ์กฐ๊ฑด์ผ๋ก ํ ์ ์๋ ๋ฌธ์ ์๋ค.
47. [297. Serialize and Deserialize Binary Tree](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/)
- ๋์ด๋ ์ธ๊ฐ๋ผ ์๋ต
48. [110. Balanced Binary Tree](https://leetcode.com/problems/balanced-binary-tree/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/balanced_binary_tree/Solution.py)
- ์ด์ง ํธ๋ฆฌ๊ฐ ๋์ด ๊ท ํ์ธ ์ด์งํธ๋ฆฌ์ธ์ง ๋ฐํํ๋ผ.
- ๋์ด ๊ท ํ์ '๋ชจ๋ ' ๋ ธ๋์ ์๋ธ ํธ๋ฆฌ ๊ฐ์ ๋์ด ์ฐจ์ด๊ฐ 1 ์ดํ์ธ ๊ฒ์ ๋งํ๋ค.
- ํจ์๊ฐ ํด์ผํ๋ ์ญํ ์ด ๋ ๊ฐ์ง์ฌ์ ์กฐ๊ธ ๋ง์์ ์๋ค์๋ค.
- ๊ทผ๋ฐ, ๊ฒฐ๊ตญ์ ์ด๋ ๊ฒ ๋ง๋ค์ด์ผ ํ๋๋ผ...
49. [310. Minimum Height Trees](https://leetcode.com/problems/minimum-height-trees/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/minimum_height_trees/Solution.py)
- ๋ ธ๋ ๊ฐ์์ ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ๋ฅผ ์ ๋ ฅ๋ฐ์ ํธ๋ฆฌ๊ฐ ์ต์ ๋์ด๊ฐ ๋๋ ๋ฃจํธ์ ๋ชฉ๋ก์ ๋ฆฌํดํ๋ผ.
- ๊ฐ๊ฐ ์ํํ๋ฉด์ ๋์ด๋ฅผ ๊ตฌํ๋๋ก ํ๋๋ฐ, ์ํ๋๋๋ก ๋์ํ์ง ์์๋ค.
- ํ์ด๋ฅผ ๋ณด๋ ์ ๋ ธ๋๋ฅผ ์ ๊ฑฐํ๋ผ๋๋ฐ ์ ๊ทธ๋์ผํ๋์ง ์ดํด๊ฐ ์ ๊ฐ์ง ์์๋ค.
50. [108. Convert Sorted Array to Binary Search Tree](https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/convert_sorted_array_to_binary_search_tree/Solution.py)
- ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฐฐ์ด์ ๋์ด ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ๋ก ๋ณํํ๋ผ.
51. [1038. Binary Search Tree to Greater Sum Tree](https://leetcode.com/problems/binary-search-tree-to-greater-sum-tree/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/binary_search_tree_to_greater_sum_tree/Solution.py)
- BST์ ๊ฐ ๋ ธ๋๋ฅผ ํ์ฌ๊ฐ๋ณด๋ค ๋ ํฐ ๊ฐ์ ๊ฐ์ง ๋ชจ๋ ๋ ธ๋์ ํฉ์ผ๋ก ๋ง๋ค์ด๋ผ.
- BST์ ํน์ฑ์ ํ์ฉํ ๋ฌธ์
52. [938. Range Sum of BST](https://leetcode.com/problems/range-sum-of-bst/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/range_sum_of_bst/Solution.py)
- ์ด์ง ํ์ ํธ๋ฆฌ(BST)๊ฐ ์ฃผ์ด์ก์ ๋ L ์ด์ R ์ดํ์ ๊ฐ์ ์ง๋ ๋ ธ๋์ ํฉ์ ๊ตฌํ๋ผ.
- ๊ฐ๋จํ๊ฒ ์ฌ๊ท๋ก ๊ตฌํํ๋ค.
- ๋ ํ๋ค๋ฉด ๊ฐ์ง์น๊ธฐ๋ฅผ ํตํด์ ๋ฐฐ์ ํ๋ ๋ฐฉ๋ฒ์ด ์๊ฒ ๋ค.
53. [783. Minimum Distance Between BST Nodes](https://leetcode.com/problems/minimum-distance-between-bst-nodes/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/minimum_distance_between_bst_nodes/Solution.py)
- ๋ ๋ ธ๋ ๊ฐ ๊ฐ์ ์ฐจ์ด๊ฐ ๊ฐ์ฅ ์์ ๋ ธ๋์ ๊ฐ์ ์ฐจ์ด๋ฅผ ์ถ๋ ฅํ๋ผ.
- ๊ฐ์ ์ฐจ์ด๋ฅผ `min` ์ ์ฌ์ฉํด์ ๊บผ๋ด๋ ๋ก์ง์ด ์ค์ํ๋ค. BST๋ฅผ ์ดํดํ๋ฉด ์ด๋ ต์ง ์๊ฒ ํ ์ ์๋ ๋ฌธ์ ์๋ค.
54. [105. Construct Binary Tree from Preorder and Inorder Traversal](https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/construct_binary_tree_from_preorder_and_inorder_traversal/Solution.py)
- ํธ๋ฆฌ์ ์ ์, ์ค์ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ฅ๊ฐ์ผ๋ก ๋ฐ์ ์ด์ง ํธ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๋ผ.
- ์ฌ๋ฐ๋ ๋ฌธ์ ์๋ค. ์ ์ ์ํ ๊ฒฐ๊ณผ์์ ์ค์ ์ํ ๊ฒฐ๊ณผ์์ ์ฐ๊ด์ฑ์ ์ด์ฉํด์ ํธ๋ ๋ฌธ์ ์๋ค.
- ํ์ ์ํ์์ผ๋ฉด ์กฐ๊ธ ์์๊ฐ ๋ฌ๋ผ์ง๊ฒ ์ง?
55. [215. Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/kth_largest_element_in_an_array/Solution.py)
- heap์ ์๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ๋ค.
- ์๊ฐ๋ณต์ก๋๋ฅผ ์ข ๋ ๊ฐ์ ํ ๋ฐฉ๋ฒ์ ์์์ง ๊ณ ๋ฏผํด๋ณด์.
56. [208. Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/leetcode/implement_trie_prefix_tree/Solution.py)
- ํธ๋ผ์ด ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ผ
- ํ ์๊ฐ ์ ๋ ๊ฑธ๋ฆฐ ๊ฒ ๊ฐ๋ค.(ํ์ด์ฌ์ ์ ๋ชฐ๋ผ์ ์๊ธด ๋ฌธ์ ...)### [CodeSignal](https://app.codesignal.com/)
1. [firstNotRepeatingCharacter](https://app.codesignal.com/interview-practice/task/uX5iLwhc6L5ckSyNC)
- ์ฒ์์ผ๋ก ์ค๋ณต๋์ง ์๋ ๋ฌธ์์ด ์ฐพ๊ธฐ
- Python์ Counter๊ฐ ์ด๋ฐ๋ฌธ์ ์์ ๊ฐํ ๊ฒ ๊ฐ๋ค.
- ๋ง์ฝ ์์๋ณด์ฅ์ด ์๋๋ค๋ฉด, list์ appendํ๊ณ ๊ฐ์ฅ index๊ฐ ์์ ๊ฐ์ ์ง์ ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.### ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค
#### ๊ทธ๋ฆฌ๋
1. ๋ชจํ๊ฐ ๊ธธ๋
- ๋ฌธ์ ์ ์กฐ๊ฑด์ ์ดํดํ์ง๋ง, ์๊ฐ๋ด์ ํ์ด์ ์คํจํ๋ค. ๊ฐ๋จํ ๋ฌธ์ ์๋๋ฐ, ์๋ชป ํ์ด๋ฅผ ์ ํํด์ ์คํจํ ๊ฒ ๊ฐ๋ค.
2. ๊ณฑํ๊ธฐ ํน์ ๋ํ๊ธฐ
- ๋ฌธ์ ์ ์กฐ๊ฑด์ ์ดํดํ๊ณ , ํ์ด์ ๋์ผํ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
3. ๋ฌธ์์ด ๋ค์ง๊ธฐ
- ๋ฌธ์ ๋ฅผ ์ ์ดํดํ์ง ๋ชปํ๋ ๊ฒ ๊ฐ๋ค. ์ดํดํ๊ธฐ ์ํด ๊ฒ์์ ํตํด์ ์ดํดํ๋ค.### ํ๋ก๊ทธ๋๋จธ์ค
1. [ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์(2019 ์นด์นด์ค ๊ฒจ์ธ ์ธํด์ญ)](https://programmers.co.kr/learn/courses/30/lessons/64061)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20๊ฒจ์ธ%20์ธํด์ญ(2019)/ํฌ๋ ์ธ%20์ธํ๋ฝ๊ธฐ/solution.py)
- ์ข ๋ ์ง์คํ๋ฉด ์ ํ ์ ์์์ ๋ฏ...
- ์์์๊ฐ 1์๊ฐ
2. [ํคํจ๋ ๋๋ฅด๊ธฐ(2020 ์นด์นด์ค ์ธํด์ญ)](https://programmers.co.kr/learn/courses/30/lessons/67256)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20์ธํด์ญ(2020)/ํคํจ๋%20๋๋ฅด๊ธฐ/solution.py)
- ๋ฌธ์ ํ์ด ์์ฒด๊ฐ ์ค๋ ๊ฑธ๋ฆฐ๋ฏ
- ์์์๊ฐ 30๋ถ
3. [๋น๋ฐ์ง๋(2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ)](https://programmers.co.kr/learn/courses/30/lessons/17681)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20๋ธ๋ผ์ธ๋%20์ฑ์ฉ(2018)/๋น๋ฐ์ง๋/solution.py)
- ํ์ด์ฌ ๋ฌธ๋ฒ์ ๋ชฐ๋ผ์ ์ข ๋ ๊ฑธ๋ ธ๋ค.
- ์์์๊ฐ 15๋ถ
4. [์คํจ์จ(2019 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ)](https://programmers.co.kr/learn/courses/30/lessons/42889)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20๋ธ๋ผ์ธ๋%20์ฑ์ฉ(2019)/์คํจ์จ/solution.py)
- try excpet๋ฅผ ์์ฉํ๋ค. lambda ์์ ์ด์ฉํ ์ ๋ ฌ ๊ธฐ์ค ์ค์ ์ ์ฌ์ฉํ๋ค.
- ํ์ด์ ์ด๋์ ๋ ๋ง์กฑํ๋ค.
- ์์์๊ฐ 21๋ถ
5. [๋คํธ ๊ฒ์(2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ)](https://programmers.co.kr/learn/courses/30/lessons/17682)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20๋ธ๋ผ์ธ๋%20์ฑ์ฉ(2018)/๋คํธ%20๊ฒ์/solution.py)
- ํ์ด์ฌ์ผ๋ก ์ ๊ท์ ์ฒ๋ฆฌ๊ฐ ์์ง ๋ฏธ์ํด์ ์์ฒญ ํด๋ฉจ๋ค.
- ํ์ด๊ฐ ์ฉ ๋ง์ ๋ค์ง ์์๋ค.
- ์์์๊ฐ 35๋ถ
6. [๋ฌธ์์ด ์์ถ(2020 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ)](https://programmers.co.kr/learn/courses/30/lessons/60057)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20๋ธ๋ผ์ธ๋%20์ฑ์ฉ(2020)/๋ฌธ์์ด%20์์ถ/solution.py)
- ํ ์ธ๋ฒ์งธ ํธ๋ ๊ฒ ๊ฐ์๋ฐ ํ ๋๋ง๋ค ์ด๋ ค์ด ๋๋์ด๋ค.
- ๊ฒฝ๊ณ๊ฐ ์ค์ ์ ์๋ชปํด์ค์ ํ ์คํธ ์ผ์ด์ค ์ค๋ฅ๊ฐ ๋ฌ์๋ค.
- ์์์๊ฐ 35๋ถ
7. [๊ดํธ ๋ณํ(2020 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ)](https://programmers.co.kr/learn/courses/30/lessons/60058)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20๋ธ๋ผ์ธ๋%20์ฑ์ฉ(2020)/๊ดํธ%20๋ณํ/solution.py)
- ํ์ด ์คํจ(30๋ถ ์์)
- ๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด ์ธ๋ฑ์ค๋ฅผ ์ด๋ป๊ฒ ์ก์์ผ ํ ์ง ๊ฐ์ด ์ค์ง ์์์
- ๋ฌธ์ ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๋๋ฐ ์ด๋ ค์์ด ์์์
- ์ฌ๊ท๋ฅผ ์ฌ์ฉํด์ผํ๋ค๋ ๊ฒ์ ์๊ณ ์์๋๋ฐ, ์ด๋ป๊ฒ ์ ์ฉํ ์ง ๋ง๋งํ๋ ๊ฒ ๊ฐ๋ค.
8. [ํํ(2019 ์นด์นด์ค ๊ฒจ์ธ ์ธํด์ญ)](https://programmers.co.kr/learn/courses/30/lessons/64065)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20๊ฒจ์ธ%20์ธํด์ญ(2019)/ํํ/solution.py)
- ํ์ด์ฌ์ด๋ผ ๋๋ฌด ์ฌ์ด๋ฌธ์ ์๋..?
- ์ ๊ท์์ผ๋ก ๊ฑธ๋ฌ๋ด๋๊ฒ ์ค์ํ๋ค.
- ํํ์ ์์๋ฅผ ์์๋ด๋๊ฒ ์ด์ง ๊น๋ค๋ก์ ๋ค. (๋ง์ด ๋์จ ์์ด๋ผ๊ณ ํจ)
- ์์์๊ฐ 10๋ถ
9. [์์ ์ต๋ํ(2020 ์นด์นด์ค ์ธํด์ญ)](https://programmers.co.kr/learn/courses/30/lessons/67257)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20์ธํด์ญ(2020)/์์%20์ต๋ํ/solution.py)
- ํ์ด ์คํจ(30๋ถ ์์)
- ์ ๊ท์์ผ๋ก ์ ๊ทผํ๋๋ฐ, ๊ตณ์ด ์ ๊ท์์ผ๋ก ์ ๊ทผํ์ง ์์๋ ๋์์ (ํ์ด์ฌ์ `eval()` ํจ์๊ฐ ์์ด์)
- ์ฐ์ ์์ ๋งค๊ธฐ๋ ๋ฐฉ์์ ์ด์ฉ ์ ์์ด ์ผ์ผ์ด ์ ์ด์ค์ผ ํ๋ค.
- ์คํ์ ์ฌ์ฉํ๋ ๋์ ์ฌ๊ท๋ฅผ ์ฌ์ฉํ ๊ฒ์ ์ฃผ๋ชฉํ๋ค.
- `join(delimiter)` ํจ์๋ ์ ์ฉํ๊ฒ ์ธ ์ ์๋ค.
- ํ์ด๋ฅผ ๋ณด๋ ์ฐ์ ์์์ ์์๋ ํฌ๊ฒ ์ค์ํ์ง ์์ ๊ฐ์ด์๋ค. ์ด ๋ถ๋ถ๋ง ์ข ๋ ์ ๊ฒฝ์ผ๋ค๋ฉด ์ข์ํ์ด์์ ๊ฒ ๊ฐ๋ค.
- ํ ํธ์ผ๋ก๋ ๋ด๊ฐ ๋๋ฌด ์ฐ์ ์์์ ์ง์ฐฉํ ๊ฐ์ด ์์์ ์๋ค.
10. [๋ด์ค ํด๋ฌ์คํฐ๋ง(2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ)](https://programmers.co.kr/learn/courses/30/lessons/17677)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20๋ธ๋ผ์ธ๋%20์ฑ์ฉ(2018)/๋ด์ค%20ํด๋ฌ์คํฐ๋ง/solution.py)
- ์ ๊ท์๊ณผ Counter(์ค๋ณต์งํฉ)๋ฅผ ํ์ฉํ๋ ๋ฌธ์ ์๋ค.
- ํฉ์งํฉ์ ๊ตฌํ ๋, ๊ต์งํฉ์ ๋นผ๋๊ฑธ ๊น๋จน์๋ค.
- ์์์๊ฐ 45๋ถ
11. [์๋ฌผ์ ์ ์ด์ (2020 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ)](https://programmers.co.kr/learn/courses/30/lessons/60059)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20๋ธ๋ผ์ธ๋%20์ฑ์ฉ(2020)/์๋ฌผ์ ์%20์ด์ /solution.py)
- ํ์ด ์คํจ(20๋ถ ํ์ด๋ณด๋ค ์ ๊ทผ์ ๋ชปํ๊ฒ ์ด์ ํฌ๊ธฐ)
- ๊ตฌํ, ์์ ํ์ ๋ฌธ์
- ์ด๋ฐ ๋ฌธ์ ์ ๋ด๊ฐ ์ฝํ ๊ฒ ๊ฐ๋ค. ๋ฌธ์ ์ ๊ทผ์กฐ์ฐจ ํ์ง ๋ชปํ๋ค.
- ์๊ฐ๋ณต์ก๋๋ฅผ ๋๋ต์ ์ผ๋ก ๋ถ์ํด์ ์ด๋ป๊ฒ ์ ๊ทผํ ์ง ์ถ๋ก ํ๋ ๊ฒ๋ ์ค์ํ ๊ฒ ๊ฐ๋ค.
- ๊ตฌํ์ ์์ด๋์ด๋ง ์๊ฐํด๋ธ๋ค๋ฉด ๋ด์ฉ ์์ฒด๋ ๊ต์ฅํ ์ฌ์์ง๋ค.
- ๋จ, ์ด์ฐจ์ ๋ฐฐ์ด ํ์ ์ ์ค๋ํซ์ ์ ์ฅํด๋๊ณ ์ฌ์ฉํด์ผ๊ฒ ๋ค. (์ด๊ฑด ์ด๋ ค์)
- ์นด์นด์ค 1์ฐจ๋ ํต๊ณผํ ์ ์์๊น ใ ใ ..
12. [๊ธฐ๋ฅ๊ณผ ๋ณด ์ค์น(2020 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ)](https://programmers.co.kr/learn/courses/30/lessons/60061)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์นด์นด์ค%20๋ธ๋ผ์ธ๋%20์ฑ์ฉ(2020)/๊ธฐ๋ฅ๊ณผ%20๋ณด%20์ค์น/solution.py)
- ํ์ด ์คํจ(1์๊ฐ 10๋ถ ํ์๋๋ฐ, ํ ์คํธ์ผ์ด์ค๋ ํต๊ณผํ์ผ๋ ์คํจ)
- ์๋ฎฌ๋ ์ด์ ๋ฌธ์
- ๋ฌธ์ ์ ์กฐ๊ฑด์ด ๋๋ฌด ๋ณต์กํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ตฌํ ๋ณต์ก๋๊ฐ ์๋นํ๋ค.
- ๊ทธ๋ฅ answer์ ๋๋ ค๋ฃ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ๋๋ผ... (์ด์ฉ์ง ๋ฌธ์ ์กฐ๊ฑด์ ๋ง๊ฒ ํ๋ ค๋ฉด ์ผ๋ฐ์ ์ธ ๋ฐฐ์ด๋ก๋ ์๋๋ค.)
- ํ์ด์ฌ ๋ค์ฌ์ฐ๊ธฐ์ ์ฝํ์ ์ ์ฝ๋ผ๋ณด๋ ์ด์ ์ผ๋ก ์ค๋ฅ๋ฅผ ๋ชป์ฐพ๊ฒ ์๋ค...
13. [๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ(์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1)](https://programmers.co.kr/learn/courses/30/lessons/68644)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/๋-๊ฐ-๋ฝ์์-๋ํ๊ธฐ/solution.py)
- 3๋ถ๋ง์ ํผ ๋ฌธ์ (level1์ด๋ผ...)
- 1์ค๋ก ํ์ดํ ์ ์์๋ค.
14. [124 ๋๋ผ์ ์ซ์](https://programmers.co.kr/learn/courses/30/lessons/12899)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/124-๋๋ผ์-์ซ์/solution.py)
- ํ์ด์์ ์ข ํค๋งค์ 50๋ถ์ด๋ ๊ฑธ๋ ธ๋ค. 3์ง๋ฒ์ ๋ ์ฌ๋ฆฐ ๊ฒ ๊น์ง๋ ์ข์๋๋ฐ, ๊ทธ ์ดํ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ค์ผ ํ ์ง ๋ชป์ฐพ์๋ค.
- ๊ณต๊ฐ๋ ํ์ด๊ฐ ๊น๋ํด์ ์ฐจ์ฉํ๋ค.
15. [์ฃผ์๊ฐ๊ฒฉ](https://programmers.co.kr/learn/courses/30/lessons/42584)
- [ํ์ด](https://github.com/ksundong/algorithm-solution/blob/master/pysrc/programmers/์ฃผ์๊ฐ๊ฒฉ/solution.py)
- ์ด์ค for๋ฌธ์ผ๋ก๋ ํ๋ ธ์ผ๋, ์๊ตฌ์ฌํญ์ด O(n^2)์ ์๊ตฌํ๋๊ฒ ์๋๋ผ๊ณ ํ๋จํ๋ค.
- ๋ณต์ก๋๋ฅผ ๋ฎ์ถ๋งํ ๋ฐฉ๋ฒ์ stack์ ์ฌ์ฉํ๋ ๊ฒ์ด์๋๋ฐ, ์ ๋ชจ๋ฅด๊ฒ ๋ค.
- C++ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํด์ ์ดํดํ๋ค.