Skip to content

mine-kim/programmers-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

43 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Programmers solutions in Java

๋ฌธ์ œ ์œ ํ˜• ์œ„์น˜
ํƒ์š•๋ฒ• greedy
๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ dp
DFS dfs
BFS bfs
์ด๋ถ„ํƒ์ƒ‰ binarysearch
ํˆฌํฌ์ธํ„ฐ twopointers
์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ slidingwindow
์ •๋ ฌ sort
๊ทธ๋ž˜ํ”„ graph
์ž๋ฃŒ๊ตฌ์กฐ(์Šคํƒ & ํ) stackqueue
์ž๋ฃŒ๊ตฌ์กฐ(ํ•ด์‹œ) hash
์™„์ „ํƒ์ƒ‰ bruteforce
๋ฐฑํŠธ๋ž˜ํ‚น backtracking
์ž๋ฃŒ๊ตฌ์กฐ(ํž™) heap
์ˆ˜ํ•™์  ๋ฌธ์ œ mathematics
๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ string
๋ณตํ•ฉ ์œ ํ˜• ๋ฐ ๊ธฐํƒ€ courses

1. ์ผ๋ฐ˜์ ์ธ ์‹œ๊ฐ„ ๋ณต์žก๋„ ๊ธฐ์ค€๊ณผ ์ž…๋ ฅ ํฌ๊ธฐ

๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ์—์„œ๋Š” 1์ดˆ์— ์•ฝ 10^8๋ฒˆ(1์–ต)์˜ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •

์ž…๋ ฅ ํฌ๊ธฐ n ์ ์ ˆํ•œ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์„ค๋ช…
n โ‰ค 10 O(n!), O(2^n) ๋งค์šฐ ์ž‘์€ ์ž…๋ ฅ์ด๋ฏ€๋กœ ์™„์ „ ํƒ์ƒ‰(Brute Force)์ด๋‚˜ ์žฌ๊ท€์  ๋ฐฑํŠธ๋ž˜ํ‚น๋„ ํ—ˆ์šฉ
n โ‰ค 20 O(2^n), O(n!) ์™„์ „ ํƒ์ƒ‰, ์žฌ๊ท€์  ๋ฐฑํŠธ๋ž˜ํ‚น ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์‹œ๋„ํ•ด๋„ ๊ฐ€๋Šฅํ•œ ํฌ๊ธฐ
n โ‰ค 100 O(n^3) 3์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ํ—ˆ์šฉํ•˜๋ฉฐ, ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ์—์„œ ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ๊ณผ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ€๋Šฅ
n โ‰ค 1,000 O(n^2) 2์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•œ ๋ธŒ๋ฃจํŠธ ํฌ์Šค๋‚˜ ๋™์  ๊ณ„ํš๋ฒ•(DP)์ด ์ ํ•ฉ
n โ‰ค 100,000 O(n log n) ํ•ฉ๋ณ‘ ์ •๋ ฌ, ํž™ ์ •๋ ฌ, ํ€ต ์ •๋ ฌ(ํ‰๊ท ), ์ด์ง„ ํƒ์ƒ‰๊ณผ ๊ฐ™์€ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ ํ•ฉํ•˜๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ํšจ์œจ์ ์ธ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋„ ๊ฐ€๋Šฅ
n โ‰ค 1,000,000 O(n) ๋‹จ์ผ ๋ฐ˜๋ณต๋ฌธ, ์„ ํ˜• ํƒ์ƒ‰, ํ•ด์‹œ ํ…Œ์ด๋ธ” ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ ํ•ฉ
n > 10^7 O(log n) ๋˜๋Š” O(1) ๋งค์šฐ ํฐ ์ž…๋ ฅ ํฌ๊ธฐ์ด๋ฏ€๋กœ ๋กœ๊ทธ ์‹œ๊ฐ„ ๋˜๋Š” ์ƒ์ˆ˜ ์‹œ๊ฐ„์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ•„์š”

2. ์ œํ•œ ์กฐ๊ฑด์„ ํ†ตํ•ด ์‹œ๊ฐ„ ๋ณต์žก๋„ ํŒ๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์ œํ•œ ์กฐ๊ฑด ๋ถ„์„: ๋ฌธ์ œ์— ์ฃผ์–ด์ง„ ์ œํ•œ ์กฐ๊ฑด์„ ํ†ตํ•ด n์˜ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 1 โ‰ค n โ‰ค 1,000์ด๋ผ๋ฉด **O(n^2)**์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ์ ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฐ์‚ฐ ๊ฐ€๋Šฅ ํšŸ์ˆ˜ ์ถ”์ •: ์ผ๋ฐ˜์ ์œผ๋กœ 1์–ต ๋ฒˆ ์—ฐ์‚ฐ์„ 1์ดˆ๋กœ ๊ฐ€์ •ํ•˜์—ฌ ์ž…๋ ฅ ํฌ๊ธฐ n์— ๋”ฐ๋ฅธ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.
  • ์ ํ•ฉํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ: ๋ฌธ์ œ์˜ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

3. ์‹œ๊ฐ„ ๋ณต์žก๋„์— ๋”ฐ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ ์˜ˆ์‹œ

์‹œ๊ฐ„ ๋ณต์žก๋„ ์ ์ ˆํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜• ์˜ˆ์‹œ ๋ฌธ์ œ
O(1) ํ•ด์‹œ ํ…Œ์ด๋ธ”, ๋ฐฐ์—ด ์ธ๋ฑ์‹ฑ ์ƒ์ˆ˜ ์‹œ๊ฐ„์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์กฐํšŒ, ์Šคํƒ์—์„œ์˜ push/pop ์—ฐ์‚ฐ
O(n) ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ, ํˆฌ ํฌ์ธํ„ฐ, ํ•ด์‹œ๋งต, ํ, BFS ๋ฐฐ์—ด์˜ ์—ฐ์†๋œ ๊ตฌ๊ฐ„์—์„œ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ๊ฑฐ๋‚˜ ์ค‘๋ณต ์ฒดํฌ ๋ฌธ์ œ, BFS ํƒ์ƒ‰
O(n log n) ํ•ฉ๋ณ‘ ์ •๋ ฌ, ํ€ต ์ •๋ ฌ, ์ด์ง„ ํƒ์ƒ‰, ๊ท ํ˜• ์ด์ง„ ํŠธ๋ฆฌ, ๊ทธ๋ฆฌ๋””, ๋ถ„ํ•  ์ •๋ณต, ์œ„์ƒ ์ •๋ ฌ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜๊ฑฐ๋‚˜, ์ด์ง„ ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•ด ๊ฐ’์„ ์ฐพ๋Š” ๋ฌธ์ œ
O(n^2) ๋ธŒ๋ฃจํŠธ ํฌ์Šค, ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ, ์Šคํƒ, DFS ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ์ •์  ๊ฐ„ ํƒ์ƒ‰, 2์ค‘ ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ตœ์ ํ™” ๋ฌธ์ œ
O(2^n) ๋ฐฑํŠธ๋ž˜ํ‚น, ๋ถ„ํ•  ์ •๋ณต, ๋™์  ๊ณ„ํš๋ฒ• (๋ฉ”๋ชจ์ด์ œ์ด์…˜), ์™„์ „ ํƒ์ƒ‰ ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ž‘๊ณ , ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฌธ์ œ
O(n!) ๋ฐฑํŠธ๋ž˜ํ‚น, ์™„์ „ ํƒ์ƒ‰ ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ž‘๊ณ , ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฌธ์ œ

About

Programmers solutions in Java

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages