algorithm & data structure

    [๋ชจ๋‘์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ตœ๋Œ“๊ฐ’ ์ฐพ๊ธฐ

    ์ฐธ๊ณ  ๊ต์žฌ: ๋ชจ๋‘์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ with ํŒŒ์ด์ฌ โ“ ๋ฌธ์ œ ์ฃผ์–ด์ง„ ์ˆซ์ž n๊ฐœ ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋ ฅ: 17, 92, 18, 33, 58, 7, 33, 42 ์ถœ๋ ฅ: 92 โ—๏ธ ํ’€์ด python def find_max(numList): max = numList[0] for i in range(0, len(numList)): if max Int { var max = list[0] for i in list { if max < i { max = i } } return max }

    [๋ชจ๋‘์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜] 1๋ถ€ํ„ฐ n๊นŒ์ง€์˜ ํ•ฉ ๊ตฌํ•˜๊ธฐ(python, Swift)

    ์ฐธ๊ณ  ๊ต์žฌ: ๋ชจ๋‘์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ with ํŒŒ์ด์ฌ โ“ ๋ฌธ์ œ 1๋ถ€ํ„ฐ n๊นŒ์ง€ ์—ฐ์†ํ•œ ์ˆซ์ž์˜ ํ•ฉ ๊ตฌํ•˜๊ธฐ ์ž…๋ ฅ: n ์ถœ๋ ฅ: ์ •์ˆ˜๐ŸŒ€ ๊ธฐ์กด ํ’€์ด python def sum_1ton(n): total = 0 for i in range(1, n+1): total += i return totalSwift5 public func sum_1ton(n: Int) -> Int { var sum:Int = 0 for i in 1.. Int { return (n * (n + 1)) / 2 }โœ”๏ธ ์—ฐ์Šต๋ฌธ์ œ // ์—ฐ์Šต๋ฌธ์ œ 1-1 public func sumPow_1toN(n: Int) -> Int { var sum = 0 for i in 0...n { sum += Int(pow(Double(i), 2.0)) } return sum } //..

    [๋ฐฑ์ค€] 5639: ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ

    ์ด์ง„ ํŠธ๋ฆฌ์˜ ์ˆœํšŒ ๋ฐฉ์‹ ์ „์œ„ ์ˆœํšŒ(DLR) โœ”๏ธ ๋ฐ์ดํ„ฐ->์™ผ์ชฝ๋…ธ๋“œ->์˜ค๋ฅธ์ชฝ๋…ธ๋“œ ์ˆœ์„œ์ค‘์œ„ ์ˆœํšŒ(LDR) ์™ผ์ชฝ๋…ธ๋“œ->๋ฐ์ดํ„ฐ->์˜ค๋ฅธ์ชฝ๋…ธ๋“œ ์ˆœ์„œํ›„์œ„ ์ˆœํšŒ(LRD) โœ”๏ธ ์™ผ์ชฝ๋…ธ๋“œ->์˜ค๋ฅธ์ชฝ๋…ธ๋“œ->๋ฐ์ดํ„ฐ ์ˆœ์„œ๐Ÿ”— ๋ฌธ์ œ ๋งํฌ: https://www.acmicpc.net/problem/5639 ํ’€์ด ์ „์œ„ ์ˆœํšŒ์˜ ์ฒซ ์›์†Œ๋Š” ๋ฃจํŠธ์ž„! ๐Ÿ’ก idea: ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๊ตฌํ•ด์„œ ํ›„์œ„ ์ˆœํšŒํ•˜๊ธฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ... ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ์‹œ๊ฐ„ + ํ›„์œ„ ์ˆœํšŒ์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด๋ผ์„œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋‚œ๋‹ค.๐Ÿ’ก ์ „์œ„ ์ˆœํšŒ ๊ฒฐ๊ณผ๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜์ž! ์ „์œ„ ์ˆœํšŒ์˜ ์ฒซ ์›์†Œ๊ฐ€ ๋ฃจํŠธ ๋…ธ๋“œ์ด๊ณ , ๋ฃจํŠธ ๋…ธ๋“œ์˜ ๋‹ค์Œ ๋…ธ๋“œ๊ฐ€ ๋ฃจํŠธ๋ณด๋‹ค ์ž‘์œผ๋ฉด ์™ผ์ชฝ, ๋ฃจํŠธ๋ณด๋‹ค ํฌ๋ฉด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ์ฐธ๊ณ ํ•œ ๊ธ€

    [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฃผ์‹ ๊ฐ€๊ฒฉ ํ’€์ด

    ์ฃผ์‹๊ฐ€๊ฒฉ ๋ฌธ์ œ ์Šคํƒ Last In First Out(LIFO), ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ์›์†Œ๊ฐ€ ๋จผ์ € ๋‚˜์˜ด push: ์Šคํƒ์— ์Œ“์Œ pop: ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋“ค์–ด๊ฐ„ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉฐ ๋ฐ˜ํ™˜ ํŒŒ์ด์ฌ ํ’€์ด def solution(prices): st=[] answer = [0]*len(prices) for i in range(len(prices)): if st == []: st.append(i) continue else: if prices[i] >= prices[i-1]: st.append(i) else: while prices[i] < prices[i-1] : top = st.pop() answer[top] = i-top if st == []: st.append(i) break top = st.pop() st.append(..

    ๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

    ๋ฐฐ์—ด Array ๋ฐฐ์—ด์€ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ ๊ตฌ์กฐ, ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ๊ฐ€์ง„ ์ž๋ฃŒ๋“ค์˜ ๊ทธ๋ฃน/์„ธํŠธ ์—ฐ์†๋œ ๊ธฐ์–ต์žฅ์†Œ๋ฅผ ๋ฐฐ์ •๋ฐ›๋Š”๋‹ค. ๋ฐฐ์—ด๋ช…/์›์†Œ/์ธ๋ฑ์Šค ์กด์žฌ ๋ฐฐ์—ด์€ ์›์†Œ๋ฅผ ์ถ”๊ฐ€/์‚ญ์ œํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ์ด๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฆฌ์ŠคํŠธ ์ฐจ๋ก€๋Œ€๋กœ ๋‚˜์—ด๋œ ์ž๋ฃŒ๋“ค์˜ ๋ชจ์ž„ ๋‚˜์—ด ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ์Œ(์„ ํ˜•๋ฆฌ์ŠคํŠธ) ์‚ฌ์šฉ ์˜ˆ์‹œ: ์ž๋ฃŒ ๊ฒ€์ƒ‰, ์ „์ฒด ๊ฒ€์ƒ‰/์ˆœํšŒ/์ถœ๋ ฅ, ์ˆœ์„œ ๋ณ€๊ฒฝ, ์ „์ฒด ๋ชฉ๋ก ๊ฐœ์ˆ˜ ๊ณ„์‚ฐ, ์ž๋ฃŒ ์ถ”๊ฐ€/์‚ญ์ œ/๋ณ€๊ฒฝ, ๋นˆ ๋ชฉ๋ก ์—ฌ๋ถ€ ํŒ๋‹จ ์„ ํ˜•๋ฆฌ์ŠคํŠธ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ด๋œ ๋™์ผ ์œ ํ˜•์˜ ํ•ญ๋ชฉ๋“ค( ์ง‘ํ•ฉ: ํ•ญ๋ชฉ๊ฐ„ ์ˆœ์„œ ๊ฐœ๋… X) ์„ ํ˜•๋ฆฌ์ŠคํŠธ์˜ ์˜ˆ์‹œ ์š”์ผ(์ผ,์›”,ํ™”,...,ํ† ) ์ž์Œ(ใ„ฑ,ใ„ด,ใ„ท,...,ใ…Ž) ํœด๋Œ€ํฐ ๋ฌธ์ž ๋ฉ”์‹œ์ง€ ๋ฆฌ์ŠคํŠธ C++์˜ ๊ฒฝ์šฐ ๋‚˜์—ดํ˜• ์ž๋ฃŒํ˜• enum ์ œ๊ณต enum Day{SUN, MON, TUE, WED, TH..