Skip to content

iQuQi/PS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ—‚๏ธ ๋ชฉ์ฐจ

ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•์ •๋ฆฌ

[์ž๋ฃŒํ˜•]

[์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ๊ณผ ํ•จ์ˆ˜]

[์ž…์ถœ๋ ฅ]

[์ฃผ์š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ]


์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ธฐ๋ณธ๊ฐœ๋…






ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•์ •๋ฆฌ

๐Ÿ” ์ž๋ฃŒํ˜•

1๏ธโƒฃ ์ˆ˜ ์ž๋ฃŒํ˜•

  1. ์ •์ˆ˜ํ˜• : ์–‘์ˆ˜, ์ •์ˆ˜, 0
  2. ์‹ค์ˆ˜ํ˜•
  • ์†Œ์ˆ˜๋ถ€๋‚˜ ์ •์ˆ˜๋ถ€๊ฐ€ 0์ผ ๋•Œ ์ƒ๋žต ๊ฐ€๋Šฅ ex) .7, -5.
  • e(E) ํ‘œ๊ธฐ๋ฒ•:
    • ์œ ํšจ์ˆซ์že^(์ง€์ˆ˜) = ์œ ํšจ์ˆซ์ž x 10^(์ง€์ˆ˜) โ‡’ ์ž๋ฆฟ์ˆ˜ ์‹ค์ˆ˜๋ฅผ ํ•  ํ™•๋ฅ ์„ ์ค„์ž„
    • ๋ฌดํ•œ(INF)๋ฅผ 1e9(10์–ต)๋กœ ํ‘œํ˜„ํ•˜๊ธฐ๋„ ํ•จ
  • round(์‹ค์ˆ˜, ๋ฐ˜์˜ฌ๋ฆผํ•  ์œ„์น˜ - 1):
    • round๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ? - ๋ณดํ†ต ์†Œ์ˆ˜์  ๋‹ค์„ฏ๋ฒˆ์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™์œผ๋ฉด ์ •๋‹ต์œผ๋กœ ์ธ์ •
      a = 0.3 + 0.6
      print(a)
      ====
      0.899999999....  #2์ง„์ˆ˜๋กœ 0.9๋ฅผ ์ •ํ™•ํžˆ ํ‘œํ˜„ํ•  ๋ฐฉ๋ฒ•์ด ์—†์Œ
    • round VS print(โ€™%.fโ€™, %_)
      • round(1.4736, 2) โ‡’ 1.5 (0์€ ์ƒ๋žต ๋จ)
      • print(โ€™%.2fโ€™ %์‹ค์ˆ˜๋ณ€์ˆ˜)์— 1.4736์„ ๋„ฃ์œผ๋ฉด? โ‡’ 1.50
  1. ์—ฐ์‚ฐ
  • ์ฝ”๋“œ๋ฅผ ์งค ๋•Œ 0์€ ํ•ญ์ƒ ์˜ˆ์™ธ์ ์œผ๋กœ ๊ฒ€์‚ฌํ•˜๊ธฐ

  • ํŒŒ์ด์ฌ3์—์„œ ์ •์ˆ˜/์ •์ˆ˜๋Š” ์‹ค์ œ ๊ฐ’์ด ์ •์ˆ˜๋ผ๋„ ์‹ค์ˆ˜๋กœ ๋‚˜์˜ด ex) 4/2 = 2.0

    ์ข…๋ฅ˜ ์˜ˆ์‹œ
    ์ผ๋ฐ˜ ์—ฐ์‚ฐ์ž +, -, *, /(์ผ๋ฐ˜์ ์ธ ๋‚˜๋ˆ„๊ธฐ), //(๋ชซ), %(๋‚˜๋จธ์ง€), **(๊ฑฐ๋“ญ์ œ๊ณฑ)
    ์‰ฌํ”„ํŠธ ์—ฐ์‚ฐ์ž << N (2^N๋ฐฐ), >> N ((1/2)^N๋ฐฐ)
    ๋น„ํŠธ๋‹จ์œ„ ์—ฐ์‚ฐ์ž ~(not), &(and), |(or), ^(xor)
  1. C์–ธ์–ด์™€ ๋™์ผํ•˜๊ฒŒ ์Œ์ˆ˜์˜ ๋ชซ ๊ตฌํ•˜๊ธฐ: int(a/b)

2๏ธโƒฃ ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜•

  1. ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ
  • list() or []
  • 1์ฐจ์› ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”: arr = [0] * N
  • 2์ฐจ์› ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”: arr = [[0] * N for _ in range(M)]
  1. ์ธ๋ฑ์‹ฑ๊ณผ ์Šฌ๋ผ์ด์‹ฑ
  • ์ธ๋ฑ์Šค๋Š” ์Œ,์–‘์˜ ์ •์ˆ˜ ๋ชจ๋‘ ๊ฐ€๋Šฅ.
  • ์Œ์˜ ์ •์ˆ˜์˜ ๊ฒฝ์šฐ ๊ฑฐ๊พธ๋กœ ํƒ์ƒ‰ ex) arr[-1] => ๋งˆ์ง€๋ง‰ ์›์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ
  • arr[a:b(:step)] โ‡’ a๋ถ€ํ„ฐ b-1 ๊นŒ์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ. step์€ ์˜ต์…˜ & ์Œ์ˆ˜๋กœ ๋„ฃ์œผ๋ฉด ๋’ค์—์„œ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
  1. ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜ (์˜ˆ์‹œ)
  • array = [i for i in range(20) if i % 2 == 1] โ‡’ 0~19๊นŒ์ง€์˜ ์ˆ˜ ์ค‘ ํ™€์ˆ˜๋งŒ ํฌํ•จํ•˜๋Š” ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ
  • array = [i * i for i in range(1,10)] โ‡’ 1~9๊นŒ์ง€์˜ ์ˆ˜์˜ ์ œ๊ณฑ ๊ฐ’์„ ํฌํ•จํ•˜๋Š” ๋ฆฌ์ŠคํŠธ
  • 2์ฐจ์› ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ•๋„ ์—ฌ๊ธฐ์— ํ•ด๋‹น
  • 2์ฐจ์› ๋ฐฐ์—ด flatten
    # 2์ฐจ์› -> 1์ฐจ์›
    flatten_arr = [y for x in arr for y in x]
  1. spread์™€ ์œ ์‚ฌํ•œ ๋ฌธ๋ฒ• = unpacking

    numbers = [1, 2, 3, 4, 5, 6]
    
    # unpacking์˜ ์ขŒ๋ณ€์€ ๋ฆฌ์ŠคํŠธ ๋˜๋Š” ํŠœํ”Œ์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ ธ์•ผํ•˜๋ฏ€๋กœ ๋‹จ์ผ unpacking์˜ ๊ฒฝ์šฐ *a๊ฐ€ ์•„๋‹Œ *a,๋ฅผ ์‚ฌ์šฉ
    *a, = numbers
    # a = [1, 2, 3, 4, 5, 6]
    
    *a, b = numbers
    # a = [1, 2, 3, 4, 5]
    # b = 6
    
    a, *b, = numbers
    # a = 1
    # b = [2, 3, 4, 5, 6]
    
    a, *b, c = numbers
    # a = 1
    # b = [2, 3, 4, 5]
    # c = 6
    
  2. ํ™œ์šฉ

    ์‚ฌ์šฉ๋ฒ• ์„ค๋ช… ์‹œ๊ฐ„ ๋ณต์žก๋„
    append(๊ฐ’) ๋งจ ๋’ค์— ์›์†Œ ํ•˜๋‚˜ ์‚ฝ์ž… O(1)
    extend(๊ฐ’) ๋ฆฌ์ŠคํŠธ ์—ฐ์žฅ O(len(โ€ฆ)) - ํ™•์žฅ ๊ธธ์ด์— ๋”ฐ๋ผ
    pop(index) ํ•ด๋‹น ์ธ๋ฑ์Šค์— ์›์†Œ ์ œ๊ฑฐ. ๊ธฐ๋ณธ๊ฐ’์€ -1 pop()์˜ ๊ฒฝ์šฐ O(1), ๊ทธ ์™ธ์˜ ์ธ๋ฑ์Šค๋Š” O(N)
    sort() ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ. reverse = True ์ธ์ž๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ & key ์ธ์ž๋กœ ์ •๋ ฌ ํ•จ์ˆ˜ ๋„ฃ์–ด์ฃผ๊ธฐ ๊ฐ€๋Šฅ O(NlogN)
    reverse() ์›์†Œ์˜ ์ˆœ์„œ๋ฅผ ๋ชจ๋‘ ๋’ค์ง‘๊ธฐ O(N)
    insert(์‚ฝ์ž…ํ•  ์ธ๋ฑ์Šค, ๊ฐ’) ํŠน์ •์œ„์น˜์— ์›์†Œ ์‚ฝ์ž… O(N)
    count(๊ฐ’) ํŠน์ • ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ O(N)
    remove(๊ฐ’) ํŠน์ • ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์›์†Œ ์ œ๊ฑฐ. ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์žˆ์œผ๋ฉด ํ•˜๋‚˜๋งŒ ์ œ๊ฑฐํ•œ๋‹ค. ๊ทธ ๊ฐ’์ด ์—†๋‹ค๋ฉด ์—๋Ÿฌ ๋ฐœ์ƒ(in ์œผ๋กœ ์„ ํ™•์ธ ํ•„์š”) O(N)
    x in array ๋ฆฌ์ŠคํŠธ์— ํŠน์ •ํ•œ ๊ฐ’์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ O(N)
    index(x) ๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • ์š”์†Œ์˜ ์ธ๋ฑ์Šค ์ฐพ๊ธฐ
  3. ์ถ”๊ฐ€

  • ํŠน์ • ์›์†Œ๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋Š” ์—†์Œ. ๋Œ€์‹  ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ์‹ ์‚ฌ์šฉ
    a = [1,2,3,4,5,6]
    remove_set = {3,4}
    result = [i for i in a if i not in remove_set]
  1. 2์ฐจ์› ๋ฐฐ์—ด ์˜ˆ์™ธ

    # ๋ณต์‚ฌ ๋ฐฉ๋ฒ•1. deepcopy()
    import copy
    a = [[1,2],[3,4]]
    b = copy.deepcopy(a)
    
    # ๋ณต์‚ฌ ๋ฐฉ๋ฒ•2. ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์ƒ์„ฑ
    a = [[1, 2], [3, 4]]
    b = [arr[:] for arr in a]
    # count()
    test=[0,0,0]
    test2 = [[0,0,0]]
    print(test.count(0), test2.count(0))
    =======
    3 0
    # ์ค‘๋ณต์ œ๊ฑฐ - tuple๋กœ ๋ฌถ์–ด์ค€ ํ›„ set()
    # ex) ๋™์ผํ•œ (x,y) ์ ์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ
    a = []
    a.append((element1, element2)) # ...๋ฐ˜๋ณต
    a = set(a)
    # 2์ฐจ์› ๋ฐฐ์—ด ์ •๋ ฌ -> key ๋„ฃ์–ด์ฃผ๊ธฐ
    a = [(1, 2), (0, 1), (5, 2), (5, 1), (3, 0)]
    
    sorted(a) # ๋””ํดํŠธ - 0์ธ๋ฑ์Šค ๋จผ์ € ๊ทธ๋‹ค์Œ 1์ธ๋ฑ์Šค...
    [(0, 1), (1, 2), (3, 0), (5, 1), (5, 2)]
    
    sorted(a, key=lambda x: x[0]) # 0 ์ธ๋ฑ์Šค์— ๋Œ€ํ•ด์„œ๋งŒ ์ •๋ ฌ, 1์ธ๋ฑ์Šค ์ •๋ ฌ x
    [(0, 1), (1, 2), (3, 0), (5, 2), (5, 1)]

3๏ธโƒฃ ๋ฌธ์ž์—ด ์ž๋ฃŒํ˜•

  1. ์ดˆ๊ธฐํ™”
  • ""๋‚˜ '' ์‚ฌ์šฉ. ํฐ ๋”ฐ์˜ดํ‘œ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ๋‚ด๋ถ€์ ์œผ๋กœ ์ž‘์€ ๋”ฐ์˜ดํ‘œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ(๋ฐ˜๋Œ€๋„ ๋งˆ์ฐฌ๊ฐ€์ง€)
  • ๋ฐฑ์Šฌ๋ž˜์‹œ(\)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํฐ ๋”ฐ์˜ดํ‘œ๋‚˜ ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋ฅผ ์›ํ•˜๋Š” ๋งŒํผ ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ
  1. ์—ฐ์‚ฐ
  • ๋ง์…ˆ: 'a' + 'b' = 'ab'
  • ๊ณฑ์…ˆ: 'a' * 3 = 'aaa'
  • ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์ด ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ ์ธ๋ฑ์‹ฑ๊ณผ ์Šฌ๋ผ์ด์‹ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค
  1. ๋ฌธ์ž์—ด์„ ์ผ์ • ๊ธธ์ด๋กœ ์ž๋ฅด๊ธฐ

    length = N
    # range์˜ 3๋ฒˆ์งธ ์ธ์ž๋Š” step
    [arr[i:i + length] for i in range(0, len(arr), length)]
  2. ๊ด€๋ จ ํ•จ์ˆ˜

    ์‚ฌ์šฉ๋ฒ• ์„ค๋ช…
    replace(target, wanted, [count]) ํŠน์ • ๋ฌธ์ž๋ฅผ ์›ํ•˜๋Š” ๋ฌธ์ž๋กœ ๊ต์ฒด, count ๋ฏธ์ž…๋ ฅ์‹œ ์ „์ฒด ๋ณ€ํ™˜
    'A'.join(B) B๋Š” ๋ฌธ์ž์—ด ํ˜น์€ ๋ฌธ์ž ๋ฐฐ์—ด. A๋ฅผ ์›์†Œ ์‚ฌ์ด์— ๋„ฃ์–ด ํ•ฉ์นœ ํ›„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜. ์ฃผ๋กœ ๊ณต๋ฐฑ์„ ๋„ฃ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
    isdigit() ์–ด๋–ค ๋ฌธ์ž์—ด์ด ์ˆซ์ž์˜ ํ˜•ํƒœ๋ฉด True๋ฅผ ๋ฐ˜ํ™˜
    isdecimal() ์–ด๋–ค ๋ฌธ์ž์—ด์ด intํ˜•์œผ๋กœ ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋ฉด True๋ฅผ ๋ฐ˜ํ™˜
    isalpha() ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์•ŒํŒŒ๋ฒณ์œผ๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํŒ๋ณ„ํ•œ๋‹ค. ๊ณต๋ฐฑ์ด ์žˆ์œผ๋ฉด False๋ฅผ ๋ฐ˜ํ™˜
    isalnum() ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์•ŒํŒŒ๋ฒณ+์ˆซ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํŒ๋ณ„. ๊ณต๋ฐฑ ์‹œ False
    lower()/upper() ์†Œ๋ฌธ์ž/๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ
    islower()/isupper() ์†Œ๋ฌธ์ž/๋Œ€๋ฌธ์ž์ธ์ง€ ํŒ๋ณ„
    'A'.rjust(N, 'B') ๋ฌธ์ž์—ด์„ N๊ธธ์ด๋กœ ๋งž์ถ”๊ธฐ ์œ„ํ•ด B ๋ฌธ์ž์—ด์„ ์‚ฝ์ž… ex) N=3 B=0 A=2 => 002
    'A'.ljust(N, 'B') rjust๊ฐ€ ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ์ด๋ผ๋ฉด, ljust๋Š” ์™ผ์ชฝ์ •๋ ฌ. A๋ฌธ์ž์—ด ์ž์ฒด๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒŒ ์•„๋‹˜. ์ƒˆ ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜!
    'A'.zfill(N) ๋ฌธ์ž์—ด์„ N๊ธธ์ด๋กœ ๋งž์ถ”๊ธฐ ์œ„ํ•ด 0 ์‚ฝ์ž…
    re.sub('[^a-z0-9]', '', str) re.sub('ํŒจํ„ด', '๋ฐ”๊ฟ€๋ฌธ์ž์—ด', '์ ์šฉํ• ๋ฌธ์ž์—ด')
    ์ •๊ทœ์‹์„ ํ™œ์šฉํ•ด์„œ ํŠน์ˆ˜๋ฌธ์ž ์ œ๊ฑฐํ•˜๊ธฐ

    image


4๏ธโƒฃ ํŠœํ”Œ ์ž๋ฃŒํ˜•

(์›์†Œ1, ์›์†Œ2)

  1. ํ•œ ๋ฒˆ ์„ ์–ธ๋œ ๊ฐ’์€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ
  • ์šฐ์„  ์ˆœ์œ„ ํ ๊ตฌํ˜„์— ์‚ฌ์šฉ
  • ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ๋˜๋Š” ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์žˆ์ง€๋Š” ์•Š์€์ง€ ์ฒดํฌ ๊ฐ€๋Šฅ
  1. ์†Œ๊ด„ํ˜ธ(()) ์‚ฌ์šฉ
  2. ๋ฆฌ์ŠคํŠธ์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ๊ณต๊ฐ„์ด ํšจ์œจ์ 
  3. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ ์›์†Œ์˜ ์„ฑ์งˆ์ด ๋‹ค๋ฅผ ๋•Œ ์‚ฌ์šฉ. ์˜ˆ์‹œ) ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - (๋น„์šฉ, ๋…ธ๋“œ ๋ฒˆํ˜ธ)

5๏ธโƒฃ ์‚ฌ์ „ ์ž๋ฃŒํ˜•

{key1: value1, key2: value2}

  1. ํ‚ค(key)์™€ ๊ฐ’(value)์˜ ์Œ์„ ๋ฐ์ดํ„ฐ๋กœ ๊ฐ€์ง => ์ˆœ์„œ X
  2. {} ๋˜๋Š” dict()๋กœ ์ดˆ๊ธฐํ™”
  3. ๋‚ด๋ถ€์ ์œผ๋กœ ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๊ฒ€์ƒ‰ ๋ฐ ์ˆ˜์ •์ด O(1) => ๋ฆฌ์ŠคํŠธ๋ณด๋‹ค ํ›จ์”ฌ ๋นจ๋ฆฌ ๋™์ž‘ํ•จ
  4. ์—†๋Š” ํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ์—๋Ÿฌ
  5. ํ™œ์šฉ
    ์‚ฌ์šฉ๋ฒ• ์„ค๋ช…
    ์›์†Œ in ์‚ฌ์ „ ํŠน์ • ์›์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ๊ธฐ
    keys() ํ‚ค ๋ฐ์ดํ„ฐ๋งŒ ๋ฝ‘์•„์„œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜
    values() ๊ฐ’ ๋ฐ์ดํ„ฐ๋งŒ ๋ฝ‘์•„์„œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜
    del dict[key] dict์—์„œ key์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’ ์ œ๊ฑฐ

6๏ธโƒฃ ์ง‘ํ•ฉ ์ž๋ฃŒํ˜•

{1, 2, 3, 4, 5} ๋˜๋Š” set([1, 2, 3, 4, 5])

  1. ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ
  2. ์‚ฌ์ „ ์ž๋ฃŒํ˜•๊ณผ ๋™์ผํ•˜๊ฒŒ ์ˆœ์„œ๊ฐ€ ์—†์Œ = ์ธ๋ฑ์‹ฑ ๋ถˆ๊ฐ€๋Šฅ
  3. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฒ€์ƒ‰ ๋ฐ ์ˆ˜์ •์ด O(1)
  4. set()์œผ๋กœ ์ดˆ๊ธฐํ™”
  5. ์ผ๋ฐ˜์ ์œผ๋กœ ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ๋“ฑ์žฅํ•œ ์ ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•  ๋•Œ ์‚ฌ์šฉ
  6. set(์ง‘ํ•ฉ) ๋‚ด๋ถ€ ์›์†Œ
  • mutable(๋ณ€๊ฒฝ ๊ฐ€๋Šฅ - ๋ฆฌ์ŠคํŠธ, ๋”•์…”๋„ˆ๋ฆฌ, ์ง‘ํ•ฉ)ํ•œ ๊ฐ’์€ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ
  • ์ƒ์ˆ˜, ๋ฌธ์ž์—ด, ํŠœํ”Œ ๋“ฑ immutableํ•œ ๊ฐ’์€ ๊ฐ€๋Šฅํ•จ
  1. ์—ฐ์‚ฐ: ํ•ฉ์ง‘ํ•ฉ(|), ์ฐจ์ง‘ํ•ฉ(-), ๊ต์ง‘ํ•ฉ(&)
  2. ํ™œ์šฉ
    ์‚ฌ์šฉ๋ฒ• ์„ค๋ช…
    add(x) ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ ๋ฐ์ดํ„ฐ์— ๊ฐ’์„ ์ถ”๊ฐ€
    update([x,y...]) ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ํ•œ๊บผ๋ฒˆ์— ์ถ”๊ฐ€
    remove(x) ํŠน์ •ํ•œ ๊ฐ’ ์ œ๊ฑฐ. ์—†์œผ๋ฉด ์˜ค๋ฅ˜ o
    discard(x) ํŠน์ •ํ•œ ๊ฐ’ ์ œ๊ฑฐ. ์—†์–ด๋„ ์˜ค๋ฅ˜ x
    x (not) in set ํŠน์ •ํ•œ ๊ฐ’์ด ์žˆ๋Š”์ง€ (์—†๋Š”์ง€) ๊ฒ€์‚ฌ
    clear() ์ง‘ํ•œ์— ์žˆ๋Š” ๋ชจ๋“  ๊ฐ’์„ ์‚ญ์ œ
    copy() ์ง‘ํ•ฉ์„ ๋ณต์ œํ•˜์—ฌ ๋ฆฌํ„ด
    len(์ง‘ํ•ฉ) ์ง‘ํ•ฉ ์›์†Œ์˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ



๐Ÿšฅ ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ๊ณผ ํ•จ์ˆ˜

1๏ธโƒฃ ์กฐ๊ฑด๋ฌธ

  1. if, elif, else๋กœ ๋ถ„๊ธฐ๋ฌธ ์ž‘์„ฑ.
  2. ๋น„๊ต ์—ฐ์‚ฐ์ž: == , !=, >, <, >=, <=
  3. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž: and, or, not
  4. ๊ธฐํƒ€ ์—ฐ์‚ฐ์ž: in, not in โ‡’ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ์ž๋ฃŒํ˜•์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  5. ์กฐ๊ฑด๋ถ€ ํ‘œํ˜„์‹ (์˜ˆ์‹œ)
    • result = โ€˜Successโ€™ if score โ‰ฅ 80 else โ€˜Failโ€™
    • ์กฐ๊ฑด๋ฌธ ์ค‘์ฒฉ ๊ฐ€๋Šฅ
  6. ํŒŒ์ด์ฌ์˜ ํŠน์ดํ•œ ํŠน์ง•
    • 1 < x < 20 โ‡’ (O)
    • ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ ํŒŒ์ด์ฌ์€ ์ˆ˜ํ•™์˜ ๋ถ€๋“ฑ์‹์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • a == b == c : ๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ์—ฐ๋‹ฌ์•„ ์‚ฌ์šฉ๊ฐ€๋Šฅ

2๏ธโƒฃ ๋ฐ˜๋ณต๋ฌธ

  1. While๋ฌธ

    while i < 9:
    	# ์ฝ”๋“œ
  2. For๋ฌธ

    for i in range(1,n): # 1~n-1
    	# ์ฝ”๋“œ
  3. ํ‚ค์›Œ๋“œ: break, continue, pass


3๏ธโƒฃ ํ•จ์ˆ˜

  1. ์‚ฌ์šฉ๋ฒ•

    def ํ•จ์ˆ˜๋ช…(๋งค๊ฐœ๋ณ€์ˆ˜):
      # ์‹คํ–‰ ์ฝ”๋“œ
      # ๋งค๊ฐœ๋ณ€์ˆ˜๋‚˜ return ๋ฌธ์€ ํ•„์ˆ˜ ์•„๋‹˜
      return ๋ฐ˜ํ™˜ ๊ฐ’
  2. ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์ • ๋ฐ ๋””ํดํŠธ

    def add(a = 0,b = 0): # ๋””ํดํŠธ
      print(a,b)
    
    add(b=3, a=2) # ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์ •, ์ด ๊ฒฝ์šฐ ์ˆœ์„œ๊ฐ€ ๋‹ฌ๋ผ๋„ ๋จ
  3. ๊ธ€๋กœ๋ฒŒ ํ‚ค์›Œ๋“œ: ํ•จ์ˆ˜ ์•ˆ์—์„œ ํ•จ์ˆ˜ ๋ฐ–์˜ ๋ณ€์ˆ˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•

    a = 0
    
    def fun():
      global a # read๋งŒ ํ• ๊ฑฐ๋ฉด global ํ‚ค์›Œ๋“œ ์—†์–ด๋„ ๋จ
      a += 1
  4. ๋žŒ๋‹ค ํ‘œํ˜„์‹

  • ํ•จ์ˆ˜๋ฅผ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ

  • ํŒŒ์ด์ฌ ์ •๋ ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ •๋ ฌ ๊ธฐ์ค€(key)์„ ์„ค์ •ํ•  ๋•Œ๋„ ์ž์ฃผ ์‚ฌ์šฉ

    # ์ผ๋ฐ˜์ ์ธ add ๋ฉ”์„œ๋“œ
    def add(a,b)
      return a+b
    print(add(3,7))
    
    # ๋žŒ๋‹ค ํ‘œํ˜„์‹์œผ๋กœ ๊ตฌํ˜„ํ•œ add() ๋ฉ”์„œ๋“œ
    print((lambda a,b: a+b)(3,7))
  1. ๊ฐ€๋ณ€ ์ธ์ž ๋ฐ›๊ธฐ

    image



๐Ÿ’ฌ ์ž…์ถœ๋ ฅ

1๏ธโƒฃ ์ž…๋ ฅ

  1. input()
  • ํ•œ์ค„์˜ ๋ฌธ์ž์—ด ์ž…๋ ฅ (์ค„๋ฐ”๊ฟˆ ๋‹จ์œ„) -> split()์„ ํ†ตํ•ด ๊ณต๋ฐฑ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๋ฌธ์ž์—ด๋กœ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฃŒํ˜• ๋ณ€ํ™˜์ด ํ•„์š”
  1. ์‚ฌ์šฉ๋ฒ• ๊ณต์‹ *** ํ•„์ˆ˜ ์•”๊ธฐ
  • list(map(int, input().split())) โ†’ int ๋Œ€์‹  float, str ๊ฐ€๋Šฅ
  • ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์ง€ ์•Š๋‹ค๋ฉด list() ์—†์ด ๋ณ€์ˆ˜์— ํ’€์–ด์„œ ๋ฐ›์•„๋„ ๋จ
    • a, b, c = map(int, input().split())
    • split(':'): ๊ตฌ๋ถ„์ž ์ง€์ • ๊ฐ€๋Šฅ
  1. ๋น ๋ฅธ ์ž…๋ ฅ โ‡’ ๋งค์šฐ ๋งŽ์€ ์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ โญ๏ธ๊ด€ํ–‰์ ์œผ๋กœ ์™ธ์›Œ์„œ ์‚ฌ์šฉโญ๏ธ

    import sys
    sys.stdin.readline().rstrip()
    # readline()์œผ๋กœ ์ž…๋ ฅ ์‹œ ์—”ํ„ฐ๊ฐ€ ์ค„ ๋ฐ”๊ฟˆ ๊ธฐํ˜ธ๋กœ ์ž…๋ ฅ๋˜๋Š”๋ฐ,
    # ์ด ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ rstrip() ํ•จ์ˆ˜๊ฐ€ ํ•„์š”
    
    # ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ๋ฒ• - int() ์ ์šฉ ์‹œ ๊ฐœํ–‰๋ฌธ์ž๊นŒ์ง€ ์ œ๊ฑฐ๋˜์„œ rstrip ๋ถˆํ•„์š”
    input = sys.stdin.readline
    int(input())
  2. ๊ธฐํƒ€ ํ•จ์ˆ˜

    ์‚ฌ์šฉ๋ฒ• ์„ค๋ช…
    ord() ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ์ •์ˆ˜๋กœ ๋ณ€๊ฒฝ. ( A -> 65, a -> 97 ), ordinal์„ ์˜๋ฏธ
    chr() ์ •์ˆ˜๋ฅผ ์œ ๋‹ˆ์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝ. ( 65 -> A, 97 -> a )
    bool() 0 = False, ๋‚˜๋จธ์ง€๋Š” True (*์‹ค์ œ๋กœ print(False == 0) -> True)

2๏ธโƒฃ ์ถœ๋ ฅ

  1. print()
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์ถœ๋ ฅ ํ›„ ์ค„๋ฐ”๊ฟˆ ์ˆ˜ํ–‰
  1. ๋‹ค์–‘ํ•œ ์ถœ๋ ฅ๋ฒ•

    ์‚ฌ์šฉ๋ฒ• ์„ค๋ช…
    print(a,b) ๋„์–ด์“ฐ๊ธฐ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅ
    print(a+b) print("a" + "b") => ab, ๋‹ค๋งŒ ๋ฌธ์ž์—ด๊ณผ ์ˆ˜๋ฅผ ๋”ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฏ€๋กœ ํ˜•๋ณ€ํ™˜ ํ•„์š”
    print(f"์ •๋‹ต์€ {answer}์ž…๋‹ˆ๋‹ค") python 3.6์ด์ƒ ๋ถ€ํ„ฐ ์ง€์›ํ•˜๋Š” f-string ๋ฌธ๋ฒ•
    print(a,b,sep='') ๋„์–ด์“ฐ๊ธฐ ์—†์ด ์ถœ๋ ฅ
    print(a, end = '') ์ค„๋ฐ”๊ฟˆ ์—†์ด ์ถœ๋ ฅ. ๋‹ค์‹œ ์ค„๋ฐ”๊ฟˆ์„ ํ•ด์ฃผ๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์ถ”๊ฐ€๋กœ print() ์‚ฌ์šฉ
    print('%x %o' %(16์ง„์ˆ˜๋ณ€์ˆ˜, 8์ง„์ˆ˜๋ณ€์ˆ˜)) 16,8์ง„์ˆ˜๋กœ ์ถœ๋ ฅ. ๋Œ€๋ฌธ์ž ์‚ฌ์šฉ ์‹œ ๋Œ€๋ฌธ์ž๋กœ ์ถœ๋ ฅ
    print('%.2f' %์‹ค์ˆ˜๋ณ€์ˆ˜) print('%.2f' %1.235) => 1.24
    print('%08d' %์ •์ˆ˜) print('%.05d' %21) => 00021, 0์„ ์ƒ๋žตํ•˜๋ฉด ๊ณต๋ฐฑ์œผ๋กœ ์ž๋ฆฌ ์ฑ„์›€



โญ๏ธ ์ฃผ์š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 6๊ฐ€์ง€

๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•œ๋‹ค.

์ถ”๊ฐ€๋กœ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์€ ์ฐพ์•„์„œ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜์ž.

1๏ธโƒฃ ๋‚ด์žฅ ํ•จ์ˆ˜

import ์—†์ด ์‚ฌ์šฉ. ์—†์–ด์„œ๋Š” ์•ˆ๋  ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ ํฌํ•จ

๋†€๋ž๊ฒŒ๋„ avg ์—†์Œ!


  1. sum(): ๋ชจ๋“  ์›์†Œ์˜ ํ•ฉ์„ ๋ฐ˜ํ™˜
  2. min()/max(): 2๊ฐœ์ด์ƒ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ๊ทธ ์ค‘ ์ตœ์†Œ/์ตœ๋Œ€๊ฐ’์„ ๋ฐ˜ํ™˜
  3. eval(): ์ˆ˜ํ•™ ์ˆ˜์‹์ด ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ๋“ค์–ด์˜ค๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ -> ์•ˆ์“ฐ๋Š”๊ฒŒ ์ข‹๋‹ค๊ณ  ํ•จ
  4. sorted(): ์ •๋ ฌ๋œ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
  • ๋ฌธ์ž์—ด ์ •๋ ฌ ๊ฐ€๋Šฅ ex) sorted('zdefa') => ['a','d','e','f','z']
  • key ์†์„ฑ์œผ๋กœ ์ •๋ ฌ ๊ธฐ์ค€ ๋ช…์‹œ ๊ฐ€๋Šฅ
    # ํŠœํ”Œ์˜ ์ฒซ๋ฒˆ์งธ ์ธ์ž๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ํ›„ ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด
    # x[1] ์ž๋ฆฌ์— (x[0], -x[1]) ๋„ฃ์–ด์ฃผ๋ฉด ๋จ
    result = sorted([('ํ™๊ธธ๋™', 35), ('์ด์ˆœ์‹ ', 23), ('์•„๋ฌด๊ฐœ', 40)], key = lambda x: x[1])
    print(result)
    =====
    [('์ด์ˆœ์‹ ', 23), ('ํ™๊ธธ๋™', 35), ('์•„๋ฌด๊ฐœ', 40)]
  • reverse ์†์„ฑ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ/๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •. ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ

2๏ธโƒฃ itertools

๋ฐ˜๋ณต๋˜๋Š” ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ


  1. permutations:

    from itertools import permutations
    data = ['A','B','C']
    result = list(permutations(data, 3))
    print(result)
    =====
    [('A','B','C'),('A','C','B'),('B','A','C'),('B','C','A'),('C','A','B'),('C','B','A')]
  2. combinations:

    from itertools import combinations
    data = ['A','B','C']
    result = list(combinations(data, 2))
    print(result)
    =====
    [('A', 'B'), ('A', 'C'), ('B', 'C')]
  3. product: ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜๋Š” ์ˆœ์—ด

    from itertools import product
    data = ['A','B','C']
    result = list(product(data, repeat=2))
    print(result)
    =====
    [('A', 'A'), ('A', 'B'), ('A', 'C'),('B', 'A'), ('B', 'B'), ('B', 'C'),('C', 'A'), ('C', 'B'), ('C', 'C')]
  4. combinations_with_replacement: ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜๋Š” ์กฐํ•ฉ

    from itertools import combinations_with_replacement
    data = ['A','B','C']
    result = list(combinations_with_replacement(data, 2))
    print(result)
    =====
    [('A', 'A'), ('A', 'B'), ('A', 'C'),('B', 'B'), ('B', 'C'), ('C', 'C')]
  5. 2์ฐจ์› ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ

    # ์ด๋Ÿฐ์‹์œผ๋กœ ์ƒˆ๋กœ์šด ํŠœํ”Œ ๋ฐฐ์—ด์„ ๋งŒ๋“  ํ›„ ์กฐํ•ฉ ํ˜น์€ ์ˆœ์—ด ์ ์šฉ
    coords = [(x, y) for x in range(n) for y in range(m)]

3๏ธโƒฃ heapq

(์ตœ์†Œ) ํž™ ์ œ๊ณต. ์šฐ์„ ์ˆœ์œ„ ํ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ

  1. ๋‹จ์ˆœํžˆ ์›์†Œ๋ฅผ ์ „๋ถ€ ๋„ฃ์–ด๋‹ค๊ฐ€ ๋นผ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„ O(NlogN)์— ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ์™„๋ฃŒ

  2. ํž™์˜ ์ตœ์ƒ๋‹จ ์›์†Œ๋Š” ํ•ญ์ƒ ๊ฐ€์žฅ ์ž‘์€ ์›์†Œ์ด๊ธฐ ๋•Œ๋ฌธ!

  3. ์ตœ๋Œ€ ํž™์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Œ -> ์‚ฝ์ž… ์‹œ ๋ถ€ํ˜ธ ๋ณ€๊ฒฝ & ๊บผ๋‚ผ ๋•Œ ๋‹ค์‹œ ๋ถ€ํ˜ธ ๋ณ€๊ฒฝํ•˜๋ฉด ๋จ

  4. ์‚ฌ์šฉ๋ฒ•

    import heapq
    
    # ์ดˆ๊ธฐํ™”
    q = []
    
    # ์˜ˆ์‹œ - ํŠœํ”Œ ํž™
    heapq.heappush(q, (3, 22))
    heapq.heappush(q, (2, 30))
    # [์ฐธ๊ณ ] heapq.heapify ํ•จ์ˆ˜๋„ import ๊ฐ€๋Šฅ
    
    print(q[0])
    result = sorted(q, key =  lambda x: x[1])
    print(result)
    
    heapq.heappop(q)
    ======
    (2, 30)
    [(3, 20), (2, 30)]
  5. heappush(h,value): ์›์†Œ ์‚ฝ์ž…

  6. heappop(h): ์›์†Œ ๊บผ๋‚ด๊ธฐ


4๏ธโƒฃ bisect

์ด์ง„ํƒ์ƒ‰. โ€˜์ •๋ ฌ๋œ ๋ฐฐ์—ดโ€™์—์„œ ํŠน์ •ํ•œ ์›์†Œ๋ฅผ ์ฐพ์•„์•ผ ํ•  ๋•Œ ๋งค์šฐ ํšจ๊ณผ์ 

  1. bisect_left(a,x): ์ •๋ ฌ๋œ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ฆฌ์ŠคํŠธ a์— ๋ฐ์ดํ„ฐ x๋ฅผ ์‚ฝ์ž…ํ•  ๊ฐ€์žฅ ์™ผ์ชฝ ์ธ๋ฑ์Šค ์ฐพ๊ธฐ -> O(logN)

  2. bisect_right(a,x): ์ •๋ ฌ๋œ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ฆฌ์ŠคํŠธ a์— ๋ฐ์ดํ„ฐ x๋ฅผ ์‚ฝ์ž…ํ•  ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์ธ๋ฑ์Šค ์ฐพ๊ธฐ -> O(logN)

  3. ์˜ˆ์‹œ

    from bisect import bisect_right, bisect_left
    
    def count_by_range(a, left_val, right_val):
      right_index = bisect_right(a, right_val)
      left_index = bisect_left(a, left_val)
      return right_index - left_index
    
    a = [1,2,3,3,3,3,4,4,8,9]
    
    # ๊ฐ’์ด 4์ธ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜ ์ถœ๋ ฅ
    print(count_by_range(a,4,4))
    ====
    2
    # ๊ฐ’์ด [-1,3] ๋ฒ”์œ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜ ์ถœ๋ ฅ
    print(count_by_range(a,-1,3))
    ====
    6

5๏ธโƒฃ collections

์œ ์šฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ์ œ๊ณต

  1. deque

      from collections import deque
      data = deque([2,3,4]) # deque()๋กœ ์ดˆ๊ธฐํ™” ๊ฐ€๋Šฅ
      data.appendleft(1)
      data.append(5)
    
      print(data)
      print(list(data))
      =====
      deque([1,2,3,4,5])
      [1,2,3,4,5]
  • ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜•์€ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๋ฅผ '๋งจ ๋’ค'์›์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ˆ˜ํ–‰ => ์•ž์ชฝ์˜ ์›์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ๋Š” ๋งŽ์€ ์‹œ๊ฐ„ ์†Œ์š”

  • ๋น„๊ต

    ๋ฆฌ์ŠคํŠธ deque
    ๊ฐ€์žฅ ์•ž์ชฝ์— ์›์†Œ ์ถ”๊ฐ€ O(N) O(1)
    ๊ฐ€์žฅ ๋’ค์ชฝ์— ์›์†Œ ์ถ”๊ฐ€ O(1) O(1)
    ๊ฐ€์žฅ ์•ž์ชฝ์˜ ์›์†Œ ์ œ๊ฑฐ O(N) O(1)
    ๊ฐ€์žฅ ๋’ค์ชฝ์˜ ์›์†Œ ์ œ๊ฑฐ O(1) O(1)
  • ๋‹ค๋งŒ ๋ฆฌ์ŠคํŠธ์™€ ๋‹ฌ๋ฆฌ ์ธ๋ฑ์‹ฑ๊ณผ ์Šฌ๋ผ์ด์‹ฑ ์‚ฌ์šฉ ๋ถˆ๊ฐ€

  • ์Šคํƒ, ํ์˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ํฌํ•จ

    • stack: ์›์†Œ ์‚ฝ์ž… => append(), ์›์†Œ ์‚ญ์ œ => pop()
    • queue: ์›์†Œ ์‚ฝ์ž… => append(), ์›์†Œ ์‚ญ์ œ => popleft()
  1. Counter: ๋“ฑ์žฅ ํšŸ์ˆ˜๋ฅผ ์„ธ๋Š” ๊ธฐ๋Šฅ

    from collections import Counter
    counter = Counter(['red','blue','red','green'])
    
    print(counter['blue'])
    print(dict(counter))
    =====
    1
    {'red':2, 'blue':1, 'green': 1}

6๏ธโƒฃ math

ํ•„์ˆ˜์ ์ธ ์ˆ˜ํ•™์  ๊ธฐ๋Šฅ์„ ์ œ๊ณต

ํ•จ์ˆ˜ ์„ค๋ช…
math.pi ํŒŒ์ด
math.e ์ž์—ฐ์ƒ์ˆ˜
math.ceil(x)โญ๏ธ x๋ฅผ ์˜ฌ๋ฆผํ•˜์—ฌ ์ •์ˆ˜๊ฐ’์„ ๋ฐ˜ํ™˜
math.floor(x)โญ๏ธ x๋ฅผ ๋‚ด๋ฆผํ•˜์—ฌ ์ •์ˆ˜๊ฐ’์„ ๋ฐ˜ํ™˜
math.trunc(x)โญ๏ธ x์˜ ์†Œ์ˆ˜์ ์„ ์ž๋ฅธ ํ›„ ์ •์ˆ˜๊ฐ’์„ ๋ฐ˜ํ™˜
math.copysign(x, y) x๊ฐ’์˜ ์ ˆ๋Œ“๊ฐ’์— y์˜ ๋ถ€ํ˜ธ๋ฅผ ๊ฐ–๋Š” ์œ ๋ฆฌ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
math.comb(n, k) nCk๊ณผ ๊ฐ™์€ ์กฐํ•ฉ ๊ฐ’์„ ๋ฐ˜ํ™˜ (n๊ฐœ์˜ ์ˆ˜์—์„œ k๊ฐœ๋ฅผ ์„ ํƒ)
math.perm(n, k) nPk์™€ ๊ฐ™์€ ์ˆœ์—ด ๊ฐ’์„ ๋ฐ˜ํ™˜ (n๊ฐœ์˜ ์ˆ˜์—์„œ k๋ฅผ ๊บผ๋‚ด ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ด)
math.factorial(x) x์˜ ํŒฉํ† ๋ฆฌ์–ผ์„ ๋ฐ˜ํ™˜ (123*...*x)
math.fmod(x, y) x์— y๋ฅผ ๋‚˜๋ˆˆ ํ›„ ๋‚˜๋จธ์ง€๋ฅผ ์ œ๊ณต (๋ถ€๋™์†Œ์ˆ˜์  ์—ฐ์‚ฐ์— ์‚ฌ์šฉ)
math.fsum(iterable) ์ดํ„ฐ๋Ÿฌ๋ธ”(iterable)์— ์žˆ๋Š” ๊ฐ’์˜ ์ •ํ™•ํ•œ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ•ฉ์„ ๋ฐ˜ํ™˜
math.prod(iterable) ์ดํ„ฐ๋Ÿฌ๋ธ”(iterable)์˜ ๋ชจ๋“  ์ˆ˜์˜ ๊ณฑ์„ ๋ฐ˜ํ™˜ (๋นˆ ๊ฒฝ์šฐ 1์„ ๋ฐ˜ํ™˜)
math.gcd(integers)โญ๏ธ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ๋ฐ›์•„ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
math.lcm(integers)โญ๏ธ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ๋ฐ›์•„ ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
math.isclose(a, b)โญ๏ธ ๋‘ ์‹ค์ˆ˜๊ฐ€ ๊ฐ™์€์ง€ ํŒ๋‹จํ•˜๋Š” ์ •ํ™•ํ•œ ํ•จ์ˆ˜
math.isfinite(x) x๊ฐ’์ด ๋ฌดํ•œํ•˜๊ฑฐ๋‚˜ Nan(Not a number) ์ผ๊ฒฝ์šฐ True ๊ฐ’์„ ๋ฐ˜ํ™˜
math.isinf(x) x๊ฐ€ ์–‘ ๋˜๋Š” ์Œ์˜ ๋ฌดํ•œ๋Œ€์ด๋ฉด True, ๋ฐ˜๋Œ€์ผ ๊ฒฝ์šฐ False๋ฅผ ๋ฐ˜ํ™˜
math.isnan(x)โญ๏ธ x๊ฐ€ Nan(Not a number)์ผ๊ฒฝ์šฐ True, ๋ฐ˜๋Œ€์ผ ๊ฒฝ์šฐ False๋ฅผ ๋ฐ˜ํ™˜
math.sqrt(n)โญ๏ธ ์ œ๊ณฑ๊ทผ ๋ฐ˜ํ™˜
math.modf(x) x์˜ (์†Œ์ˆ˜, ์ •์ˆ˜)๋ถ€๋ถ„์œผ๋กœ ๋ฐ˜ํ™˜, ์ •์ˆ˜๋ถ€๋ถ„์€ float๋กœ ๋ฐ˜ํ™˜







์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ธฐ๋ณธ ๊ฐœ๋…

์‹œ๊ฐ„ ๋ณต์žก๋„

์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์—ฐ์‚ฐ์˜ ํšŸ์ˆ˜. ์ด๋•Œ ์—ฐ์‚ฐ์ด๋ž€, ์‚ฌ์น™ ์—ฐ์‚ฐ๊ณผ ๋น„๊ต ์—ฐ์‚ฐ ๋“ฑ์˜ ๊ธฐ๋ณธ ์—ฐ์‚ฐ์„ ๋งํ•จ.


1๏ธโƒฃ ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•

  1. ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š”(= ๊ฐ€์žฅ ์˜ํ–ฅ๋ ฅ์ด ํฐ) ํ•ญ๋งŒ์„ ๊ณ ๋ ค. ์˜ˆ์‹œ) 5N^3 + 2N^2 + N => O(N^3)

  2. ๋‹ค๋งŒ, ํ•ญ์ƒ ๋งž๋Š” ๊ฑด ์•„๋‹˜. ์˜ˆ์‹œ) N^3 + 100000000000 => N์ด ์ž‘์„ ๋•Œ๋Š” ์ƒ์ˆ˜์˜ ์˜ํ–ฅ์ด ํ›จ์”ฌ ํฌ๋‹ค

  3. ์ตœ์•…์˜ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์—ฐ์‚ฐ ํšŸ์ˆ˜๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•จ

  4. ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ํŒŒ์ด์ฌ ๊ธฐ์ค€ 2000๋งŒ๋ฒˆ(2e7)์„ ๋„˜์–ด๊ฐ€๋ฉด 1์ดˆ ์ •๋„ ์†Œ์š”

  5. ํ‘œ (ํŒŒ์ด์ฌ ๊ธฐ์ค€)

    ํ‘œ๊ธฐ๋ฒ• ๋ช…์นญ ์•Œ๊ณ ๋ฆฌ์ฆ˜(์ตœ์•…์˜ ๊ฒฝ์šฐ ๊ธฐ์ค€) ๋Œ€๋žต์ ์ธ N ๋ฒ”์œ„
    O(1) ์ƒ์ˆ˜ ์‹œ๊ฐ„ ์Šคํƒ์˜ push/pop, ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•ด์„œ ๋ฐ”๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ์—ฐ์‚ฐ, ์„œ๋กœ์†Œ ์ง‘ํ•ฉ ์—ฐ์‚ฐ ~
    O(logN) ๋กœ๊ทธ ์‹œ๊ฐ„ ์ด์ง„ ํƒ์ƒ‰, ํŠธ๋ฆฌ ํ˜•ํƒœ ์ž๋ฃŒ๊ตฌ์กฐ ํƒ์ƒ‰, 1000๋งŒ ๋‹จ์œ„ ์ด์ƒ
    O(N) ์„ ํ˜• ์‹œ๊ฐ„ 1์ค‘ for๋ฌธ, ๋ฐ˜๋ณตํ˜• ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด, DFS/BFS, ์œ„์ƒ ์ •๋ ฌ 1000๋งŒ๋‹จ์œ„ ์ดํ•˜
    O(NlogN) ๋กœ๊ทธ ์„ ํ˜• ์‹œ๊ฐ„ ํž™/๋ณ‘ํ•ฉ ์ •๋ ฌ, sort()(ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ์ •๋ ฌ ํ•จ์ˆ˜), LIS, ๊ฐœ์„ ๋œ ๋‹ค์ต์ŠคํŠธ๋ผ, ํฌ๋ฃจ์Šค์นผ 100๋งŒ๋‹จ์œ„ ์ดํ•˜
    O(N^2) ์ด์ฐจ ์‹œ๊ฐ„ ํ€ต/์„ ํƒ/๊ฑฐํ’ˆ/์‚ฝ์ž… ์ •๋ ฌ, 2์ค‘ for๋ฌธ 1000๋‹จ์œ„ ์ดํ•˜
    O(N^3) ์‚ผ์ฐจ ์‹œ๊ฐ„ (๋ณดํ†ต ์‹œ๊ฐ„ ์ดˆ๊ณผ) ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ 100๋‹จ์œ„ ์ดํ•˜
    O(2^N) ์ง€์ˆ˜ ์‹œ๊ฐ„ (๋ณดํ†ต ์‹œ๊ฐ„ ์ดˆ๊ณผ) ์žฌ๊ท€ํ˜• ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด X

2๏ธโƒฃ ๋ฌธ์ œ ํ’€์ด

  1. ์‹œ๊ฐ„ ๋ณต์žก๋„ ๋ถ„์„์€ ๋ฌธ์ œ ํ’€์ด์˜ ํ•ต์‹ฌ -> ๋ฌธ์ œ ์กฐ๊ฑด์„ ํ™•์ธํ•œ ํ›„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ขํ˜€๋‚˜๊ฐ€์ž
    [์˜ˆ์‹œ]
      - N์˜ ๋ฒ”์œ„๊ฐ€ 500์ธ ๊ฒฝ์šฐ = O(N^3)์œผ๋กœ ์„ค๊ณ„
      - N์˜ ๋ฒ”์œ„๊ฐ€ 2000์ธ ๊ฒฝ์šฐ = O(N^2)์œผ๋กœ ์„ค๊ณ„
      - N์˜ ๋ฒ”์œ„๊ฐ€ 2,000,000์ธ ๊ฒฝ์šฐ = O(N)์œผ๋กœ ์„ค๊ณ„
    



๊ณต๊ฐ„ ๋ณต์žก๋„

์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘


  1. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ๊ธฐ์ค€์€ MB๋กœ ์ œ์‹œ -> ๋ณดํ†ต 128 ~ 512MB๋กœ ์ œํ•œ
  2. ์ฆ‰, ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ 1000๋งŒ๊ฐœ๊ฐ€ ๋„˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•ด์•ผํ•จ์„ ๋งํ•จ
  3. int a[1000] = 4KB, int a[1,000,000] = 4MB



์•„์Šคํ‚ค ์ฝ”๋“œ

แ„‹แ…กแ„‰แ…ณแ„แ…ต แ„แ…ฉแ„ƒแ…ณ



โ€ผ๏ธ ์˜ค๋‹ต๋…ธํŠธ & ํŒ

  1. ๋ณ€์ˆ˜ ๋„ค์ด๋ฐ ์‹œ ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ ์ ˆ๋Œ€ ๊ธˆ์ง€ ex) str, input...
  2. division by zero ์ฃผ์˜
  3. ์ œ์ถœ ์ „ ์Œ์ˆ˜, 0, ์–‘์ˆ˜, ์ตœ๋Œ€๊ฐ’, ์ตœ์†Œ๊ฐ’ ์ฒดํฌ
  4. ๋ฐฐ์—ด ์‚ฌ์šฉ ์‹œ, out of range ์ฃผ์˜
  5. /๋ฅผ ์จ์•ผํ•  ๋•Œ์™€ //๋ฅผ ์จ์•ผํ•  ๋•Œ ๊ตฌ๋ถ„ ์ž˜ํ•˜๊ธฐ
  6. ๋ฐ”๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ๋ง๊ณ  ์„ค๊ณ„ & ์ฃผ์„์œผ๋กœ ์ˆ˜๋„์ฝ”๋“œ ์ž‘์„ฑ
  7. ์ž…๋ ฅ์ด ๋งŽ์œผ๋ฉด sys.std.readline().rstrip() !!
  8. ๋ณ€์ˆ˜๋„ค์ด๋ฐ์€ ์ตœ๋Œ€ํ•œ ์งง๊ฒŒ ์“ฐ๋Š” ํŽธ์ด ๋ณด๊ธฐ ํŽธํ•จ ex) cx, nx <- current_x next_x
  9. ^๋Š” ์Šน์ˆ˜ ํ‘œํ˜„์ด ์•„๋‹ˆ๋‹ค! ๋น„ํŠธ ์—ฐ์‚ฐ์ž์ž„ -> math.pow ๋˜๋Š” ** ์‚ฌ์šฉํ•˜๊ธฐ
  10. 2,8,16์ง„๋ฒ•์„ 10์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ => int('aa',16),int('56',8),int('10',2)
  11. 10์ง„๋ฒ•์„ 2,8,16์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ => bin(30),oct(n),hex(n)
  12. ๋ฌธ์ž์—ด ์ˆ˜์ • ์‹œ - ex) board = '0##00'
    • board[x] = '#' ๋ฌธ์ž์—ด์€ immutable์ด๋ฏ€๋กœ ์ค‘๊ฐ„์— ํ•˜๋‚˜๋ฅผ ์ˆ˜์ •๋ชปํ•จ
    • ์ธ๋ฑ์Šค๋ฅผ ์ง€์ •ํ•ด์„œ ๋ฐ”๊พธ๊ณ  ์‹ถ์œผ๋ฉด arr=list(str) ํ›„์— arr[idx]๋กœ ์ ‘๊ทผ
  13. for case in range(1 << 10): - 2์˜ ์ œ๊ณฑ์ด๋ฉด ์ด๋Ÿฐ์‹์œผ๋กœ ๊ฐ€๋Šฅ
  14. rjust๋Š” ์˜ค๋ฅธ์ชฝ์— ์ฑ„์šฐ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ์ž„
  15. int ๋กœ ์•ˆ๊ฐ์ŒŒ์œผ๋ฉด rstrip ์ถ”๊ฐ€!!
  16. ํŒŒ์ด์ฌ์€ a == b == c == d ์ด๋Ÿฐ์‹์œผ๋กœ ๊ณ„์† ์—ฐ์‚ฐ ๊ฐ€๋Šฅ
  17. ๋Œ€์ž…์‹œ a = b = 0 ์ด๋ ‡๊ฒŒ๋„ ๊ฐ€๋Šฅ
  18. ์›ํ˜•์˜ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ธธ์ด๋ฅผ ๋‘๋ฐฐ๋กœ ๋Š˜๋ ค์„œ ์—ฐ๊ฒฐ๋˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ์‹๋„ ๊ณ ๋ ค
  19. reversed ๋ณด๋‹ค [::-1] ๋ฐฉ์‹์ด ๋” ์ข‹์Œ
    • reversed์˜ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค ์‹œ iteration ์–ด์ฉŒ๊ตฌ ์—๋Ÿฌ๋œธ
  20. max(seasons, key=len) ์ด๋Ÿฐ์‹์œผ๋กœ min max์— ์ •๋ ฌ ํ‚ค ์„ค์ • ๊ฐ€๋Šฅ
  21. list(map(int,input().split())) => 0100010 ์ด๋Ÿฐ ๊ฒฝ์šฐ์— ๋งจ์•ž 0์ด ์ž˜๋ ค์„œ ๋“ค์–ด๊ฐ
  22. bfs์—์„œ visited์— ๋“ค์–ด๊ฐ€๋Š” ๋…ธ๋“œ๊ฐ€ ๋งŽ์•„์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚  ๊ฒƒ ๊ฐ™์œผ๋ฉด set ์ž๋ฃŒ๊ตฌ์กฐ ๊ณ ๋ ค
  23. ๊ทธ๋ž˜ํ”„์—์„œ '๋ฌถ์Œ'์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ = DFS/BFS !
  24. ๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฒฝ์šฐ ๋ฐ”์šด๋”๋ฆฌ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋Š”์ง€ ์ฒดํฌ
  25. ์ด๋ถ„ ํƒ์ƒ‰์—์„œ๋Š” start, end๋ฅผ ์ œ๋Œ€๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”!
  26. for i in arr: ... ํ•˜๊ณ  for ๋ฌธ ๋‚ด๋ถ€์—์„œ arr์— ์ถ”๊ฐ€, ์‚ญ์ œ๋ฅผ ํ•˜๊ฒŒ๋˜๋ฉด ์˜ํ–ฅ ๋ฐ›์Œ
  27. 0,1 ์€ ์†Œ์ˆ˜ ์•„๋‹˜
  28. dfs ์‚ฌ์šฉ ์‹œ ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ฃผ์˜!!
  29. list(input().rstrip()) ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด์„ ๊ธ€์ž๋ณ„๋กœ ๋‚˜๋ˆ ์„œ ๋ฐฐ์—ดํ™” & \n ์ž๋™ ์ œ๊ฑฐ
  30. union_parent๋งŒ ํ•˜๊ฒŒ ๋˜๋ฉด parent๋Š” ๊ฒฝ๋กœ์••์ถ•์ด ์•ˆ๋œ ์ƒํƒœ๋ผ๋Š”๊ฑฐ ๋ช…์‹ฌ
  31. ํ”Œ๋กœ์ด๋“œ์—์„œ a->b๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๋ฉด ๊ฐ€์žฅ ์งง์€ ๊ฒฝ๋กœ ๊ธฐ์ค€์œผ๋กœ ๋Œ๋ฆฌ๊ธฐ
  32. ์–‘๋ฐฉํ–ฅ์ธ ๊ฒฝ์šฐ a->b b->a ๊ฐ„์„ ์„ ๊ฐ๊ฐ ์ถ”๊ฐ€
  33. ์ตœ๋‹จ ๊ฒฝ๋กœ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์ด๋”๋ผ๋„ '๋น„์šฉ'์€ ๋ชจ๋‘ ๋™์ผํ•˜๋‹ค๋Š” ์ ์„ ํ™œ์šฉ
  34. 0์ด False๋กœ ์ฒ˜๋ฆฌ๋˜์„œ ์กฐ๊ฑด๋ฌธ์— ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š”์ง€ ์ฒดํฌ
  35. [:-k]๋กœ ์ธ๋ฑ์‹ฑ ํ• ๋•Œ => k๊ฐ€ 1๋ณด๋‹ค ์ž‘์•„์ง€๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋Š”์ง€ ์ฒดํฌ

๐Ÿ”ฅ ํ˜น์‹œ ๋ชฐ๋ผ์„œ ๋„ฃ์–ด๋‘๋Š” SQL ์ฝ”ํ…Œ ๋ฌธ๋ฒ•

| https://paris-in-the-rain.tistory.com/100

| https://velog.io/@devheyrin/%EC%BD%94%EB%94%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%A5%BC-%EC%9C%84%ED%95%9C-SQL-Commands-%EC%A0%95%EB%A6%AC


๐Ÿ”ฅ ํ˜น์‹œ ๋ชฐ๋ผ์„œ ๋„ฃ์–ด๋‘๋Š” C++ ์ฝ”ํ…Œ ๋ฌธ๋ฒ•

| https://velog.io/@21stairs/C-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%A6%AC

| https://blogshine.tistory.com/101

About

Problem solving

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages