J1Yun
ZU-TECHLOG
J1Yun
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ“‘ Category (135)
    • Algorithm (61)
      • ๐Ÿ“š Concept (6)
      • ๐Ÿ“˜ Baekjoon Judge (53)
      • ๐Ÿ“— Programmers (2)
    • Computer Science (42)
      • ๐Ÿ”’ Operating System (14)
      • ๐Ÿ“ก Network (15)
      • ๐Ÿ’พ Database (8)
      • ๐Ÿงฉ Design Pattern (4)
      • ๐Ÿ”‘ Security (1)
    • Activities (12)
      • ๐Ÿฆ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ (6)
      • ๐Ÿ’ป SW๋งˆ์—์ŠคํŠธ๋กœ 13๊ธฐ (6)
    • Infra (1)
      • โ˜๏ธ AWS (1)
    • Languages (1)
      • ๐Ÿ’™ Python (1)
    • Backend (7)
      • ๐Ÿ”ต Django (4)
      • ๐ŸŸข Node.js (3)
    • Ect. (8)
      • ๐Ÿ’ฌ Talk (0)
      • ๐Ÿ—‚๏ธ ๊ฐœ๋ฐœ์ง๊ตฐ ์ทจ์—… ์ค€๋น„์ž๋ฃŒ (8)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.
J1Yun

ZU-TECHLOG

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ฃผ์š” ์—ฐ์‚ฐ์ž/๋ฉ”์†Œ๋“œ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ •๋ฆฌ - ํŒŒ์ด์ฌ(Python)
Languages/๐Ÿ’™ Python

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ฃผ์š” ์—ฐ์‚ฐ์ž/๋ฉ”์†Œ๋“œ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ •๋ฆฌ - ํŒŒ์ด์ฌ(Python)

728x90

์‹œ๊ฐ„ ๋ณต์žก๋„ in ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

  N์ด 1000์ผ ๋•Œ์˜ ์—ฐ์‚ฐ ํšŸ์ˆ˜
O(N) 1000
O(NlogN) 10000
O(N^2) 1000000
O(N^3) 1000000000

 

์‹œ๊ฐ„ ์ œํ•œ์ด 1์ดˆ์ธ ๋ฌธ์ œ์ผ ๋•Œ

  • N์˜ ๋ฒ”์œ„๊ฐ€ 500์ธ ๊ฒฝ์šฐ: ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(N^3)์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค.
  • N์˜ ๋ฒ”์œ„๊ฐ€ 2000์ธ ๊ฒฝ์šฐ: ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(N^2)์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค.
  • N์˜ ๋ฒ”์œ„๊ฐ€ 100000(10๋งŒ)์ธ ๊ฒฝ์šฐ: ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(NlogN)์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค.
  • N์˜ ๋ฒ”์œ„๊ฐ€ 10000000(1000๋งŒ)์ธ ๊ฒฝ์šฐ: ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(N)์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

 

๋ฆฌ์ŠคํŠธ(List)

  Operation Example Big-O Notes
1 Index l[i] O(1) ์ธ๋ฑ์Šค๋กœ ๊ฐ’ ์ฐพ๊ธฐ
2 Store l[i] = val O(1) ์ธ๋ฑ์Šค๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ
3 Length len(l) O(1) ๋ฆฌ์ŠคํŠธ ๊ธธ์ด
4 Append l.append(val) O(1) ๋ฆฌ์ŠคํŠธ ๋’ค์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
5 Pop l.pop() O(1) ๋ฆฌ์ŠคํŠธ ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ pop
6 Clear l.clear() O(1) ๋นˆ ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ฆ
7 Slice l[a:b] O(b-a) ์Šฌ๋ผ์ด์‹ฑ
8 Extend l.extend(l2) O(len(l2)) ๋ฆฌ์ŠคํŠธ ํ™•์žฅ
9 Construction list(…) O(len(…)) ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ
10 check ==, != l1 == l2 O(N) ์ „์ฒด ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋™์ผํ•œ์ง€ ํ™•์ธ
11 Insert l[a:b] = … O(N) ๋ฐ์ดํ„ฐ ์‚ฝ์ž…
12 Delete del l[i] O(N) ๋ฐ์ดํ„ฐ ์‚ญ์ œ
13 Containment x in/not in l O(N) x๊ฐ’ ํฌํ•จ ์—ฌ๋ถ€ ํ™•์ธ
14 Copy l.copy() O(N) ๋ฆฌ์ŠคํŠธ ๋ณต์ œ
15 Remove l.remove(val) O(N) ๋ฆฌ์ŠคํŠธ์—์„œ val๊ฐ’ ์ œ๊ฑฐ
16 Pop 2 l.pop(i) O(N) i๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’ pop
17 Extreme value min(l) / max(l) O(N) ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•ด์•ผํ•จ
18 Reverse l.reverse() O(N) ๋’ค์ง‘๊ธฐ
19 Iteration for v in l: O(N) ์ „์ฒด ๋ฐ์ดํ„ฐ ์ˆœํšŒ
20 Sort l.sort() O(N log N) ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ์ •๋ ฌ
21 Multiply k*l O(k N) ๋ฆฌ์ŠคํŠธ ๊ณฑ๋งŒํผ ๋ฆฌ์ŠคํŠธ ๊ฐœ์ˆ˜ ์ฆ๊ฐ€

 

์ง‘ํ•ฉ(Set)

  Operation Example Big-O Notes
1 Add s.add(val) O(1) ์ง‘ํ•ฉ ์š”์†Œ ์ถ”๊ฐ€
2 Containment x in/not in s O(1) ํฌํ•จ ์—ฌ๋ถ€ ํ™•์ธ
3 Remove s.remove(val) O(1) ์š”์†Œ ์ œ๊ฑฐ(์—†์œผ๋ฉด ์—๋Ÿฌ)
4 Discard s.discard(val) O(1) ์š”์†Œ ์ œ๊ฑฐ(์—†์–ด๋„ ์—๋Ÿฌx)
5 Pop s.pop() O(1) ๋žœ๋คํ•˜๊ฒŒ ํ•˜๋‚˜ pop
6 Clear s.clear() O(1) ๋นˆ ์ง‘ํ•ฉ์œผ๋กœ ๋งŒ๋“ฆ
7 Construction set(…) O(len(…)) ๊ธธ์ด๋งŒํผ
8 check ==, != s != t O(len(s)) ์ „์ฒด ์š”์†Œ ๋™์ผ ์—ฌ๋ถ€ ํ™•์ธ
9 <= or < s <= t O(len(s)) ๋ถ€๋ถ„์ง‘ํ•ฉ ์—ฌ๋ถ€
10 Union s, t O(len(s)+len(t)) ํ•ฉ์ง‘ํ•ฉ
11 Intersection s & t O(len(s)+len(t)) ๊ต์ง‘ํ•ฉ
12 Difference s - t O(len(s)+len(t)) ์ฐจ์ง‘ํ•ฉ
13 Symmetric Diff s ^ t O(len(s)+len(t)) ์—ฌ์ง‘ํ•ฉ
14 Iteration for v in s: O(N) ์ „์ฒด ์š”์†Œ ์ˆœํšŒ
15 Copy s.copy() O(N) ๋ณต์ œ

 

๋”•์…”๋„ˆ๋ฆฌ(Dictionary)

  Operation Example Big-O Notes
1 Store d[k] = v O(1) ์ง‘ํ•ฉ ์š”์†Œ ์ถ”๊ฐ€
2 Length len(d) O(1) ๋”•์…”๋„ˆ๋ฆฌ ๊ธธ์ด
3 Delete del d[k] O(1) ํ•ด๋‹น key ์ œ๊ฑฐ
4 get/setdefault d.get(k) O(1) key์— ๋”ฐ๋ฅธ value ํ™•์ธ
5 Pop d.pop(k) O(1) pop
6 Pop item d.popitem() O(1) ๋žœ๋ค ๋ฐ์ดํ„ฐ(key:value) pop
7 Clear d.clear() O(1) ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋งŒ๋“ฆ
8 View d.keys() O(1) key ์ „์ฒด ํ™•์ธ
9 Values d.values() O(1) value ์ „์ฒด ํ™•์ธ
10 Construction dict(…) O(len(…)) (key, value) tuple ๊ฐฏ์ˆ˜๋งŒํผ
11 Iteration for k in d: O(N) ๋”•์…”๋„ˆ๋ฆฌ ์ „์ฒด ์ˆœํšŒ

 

๋ฑํฌ(collections.deque)

  Operation Example Big-O Notes
1 Copy dq.copy() O(N) ๋ณต์ œ
2 Append dq.append(val) O(1) ์š”์†Œ ์ถ”๊ฐ€ (ํ์˜ ์˜ค๋ฅธ์ชฝ)
3 Append Left dq.appendleft(val) O(1) ์š”์†Œ ์ถ”๊ฐ€ (ํ์˜ ์™ผ์ชฝ)
4 Pop dq.pop() O(1) ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ pop
5 Pop Left dq.popleft() O(1) ์ฒซ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ pop
6 Extend dq.extend(dq2) O(k) dq + dq2 ํ™•์žฅ
7 Extend Left dq.extendleft(dq2) O(len(dq2)) dq2 + dq ํ™•์žฅ
8 Rotate dq.rotate(k) O(k) ์–‘์ˆ˜k: ์˜ค๋ฅธ์ชฝ์œผ๋กœ n๋งŒํผ ํšŒ์ „, ์Œ์ˆ˜k: ์™ผ์ชฝ์œผ๋กœ n๋งŒํผ ํšŒ์ „
9 Remove dq.remove(val) O(N) ์š”์†Œ ์ œ๊ฑฐ

 

์šฐ์„ ์ˆœ์œ„ํ(heapq)

  Operation Example Big-O Notes
1 Heappush heappush(h, 1) O(logN) ํž™์— ์›์†Œ ์ถ”๊ฐ€
2 Heappop heappop(h) O(logN) ๊ฐ€์žฅ ์ž‘์€ ์›์†Œ pop
3 Heapify heapify(h) O(N) ๋ฆฌ์ŠคํŠธ๋ฅผ ํž™์œผ๋กœ ๋ณ€ํ™˜

 

์ด์ง„ํƒ์ƒ‰(bisect)

  Operation Example Big-O Notes
1 Bisect Left bisect_left(data, x) O(logN) data์— x๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ธ๋ฑ์Šค
2 Bisect Right bisect_right(data, x) O(logN) data์— x๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ธ๋ฑ์Šค
728x90
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    J1Yun
    J1Yun
    ๊ฐœ๋ฐœ ๊ด€๋ จ ๊ธฐ์ˆ  ๋ฐ ๊ณต๋ถ€ ๋‚ด์šฉ ๊ธฐ๋ก์žฅ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”