Python 6

[python] μˆœμ—΄κ³Ό μ‘°ν•©

μˆœμ—΄(permutation) - μˆœμ„œλ₯Ό κ³ λ €ν•œ 선택 - nPr둜 ν‘œμ‹œ import imertools arr = ['A', 'B', 'C'] perm = itertools.permutations(arr, 2) # 2개 선택 print(list(perm)) # [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')] μ‘°ν•©(combination) - μˆœμ„œλ₯Ό κ³ λ €ν•˜μ§€ μ•Šμ€ 선택 - nCr둜 ν‘œμ‹œ import itertools arr = ['A', 'B', 'C'] combi = itertools.combinations(arr, 2) print(list(combi)) # [('A', 'B'), ('A', 'C'), ('B', 'C')]

[python] bisect

bisect - bisect : νŒŒμ΄μ¬μ—μ„œ 이진탐색을 μ‰½κ²Œ κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ μ œκ³΅ν•˜λŠ” λΌμ΄λΈŒλŸ¬λ¦¬μ΄λ‹€. - μ •λ ¬λœ λ°°μ—΄μ—μ„œ νŠΉμ •ν•œ μ›μ†Œλ₯Ό μ°Ύμ•„μ•Όν•  λ•Œ 자주 μ‚¬μš©λœλ‹€. - bisect_left(), bisect_right() ν•¨μˆ˜κ°€ κ°€μž₯ μ€‘μš”ν•˜κ²Œ μ‚¬μš©λœλ‹€. bisect_left, bisect_right - bisect_left(list, n) : μ •λ ¬λœ μˆœμ„œλ₯Ό μœ μ§€ν•˜λ©° 리슀트 list에 데이터 n을 μ‚½μž…ν•  κ°€μž₯ μ™Όμͺ½ 인덱슀λ₯Ό μ°ΎλŠ”λ‹€. - bisect_right(list, n) : μ •λ ¬λœ μˆœμ„œλ₯Ό μœ μ§€ν•˜λ©° 리슀트 list에 데이터 n을 μ‚½μž…ν•  κ°€μž₯ 였λ₯Έμͺ½ 인덱슀λ₯Ό μ°ΎλŠ”λ‹€. - bisect_left(list, n, lo = 0, hi = len(list)) : lo와 hiλŠ” κ³ λ €ν•  리슀트의 뢀뢄집합을 μ§€μ •ν•˜λŠ” 데 사..

[Python] tuple

νŠœν”Œ μ„ μ–Έ - ν•œ 번 μ •ν•΄μ§„ μˆœμ„œλ₯Ό λ°”κΏ€ 수 μ—†λ‹€. - μ„ μ–Έ tuple1 = {1, 2, 3, 4} tuple2 = 1, 2, 3, 4 mylist = [1, 2, 3, 4] tuple3 = tuple(mylist) - νŠœν”Œμ€ κ°’μ˜ λ³€κ²½κ³Ό μ‚­μ œκ°€ λΆˆκ°€λŠ₯ν•˜λ‹€. packing, unpacking - packing : ν•˜λ‚˜μ˜ λ³€μˆ˜μ— μ—¬λŸ¬ 개의 값을 λ„£λŠ” 것 - unpacking : νŒ¨ν‚Ήλœ λ³€μˆ˜μ—μ„œ μ—¬λŸ¬ 개의 값을 κΊΌλ‚΄μ˜€λŠ” 것 c = (3, 4) d, e = c # c의 값을 μ–ΈνŒ¨ν‚Ήν•˜μ—¬ d, e에 값을 λ„£μŒ f = d, e # d, e값을 f에 νŒ¨ν‚Ή - νŠœν”Œμ˜ 두 λ³€μˆ˜ 값을 λ°”κΏ€ λ•Œ μž„μ‹œ λ³€μˆ˜κ°€ ν•„μš”μ—†λ‹€. - ν•¨μˆ˜μ˜ 리턴 κ°’μœΌλ‘œ μ—¬λŸ¬ 값을 전달할 수 μžˆλ‹€. νŠœν”Œμ„ μ΄μš©ν•œ ν•¨μˆ˜μ˜ 리턴값 - νŠœν”Œ 리슀트 list ..

[Python] λ”•μ…”λ„ˆλ¦¬

λ”•μ…”λ„ˆλ¦¬ - μ—¬λŸ¬ 값을 μ €μž₯ν•΄ 두고 ν•„μš”ν•œ 값을 κΊΌλ‚΄ μ“°λŠ” κΈ°λŠ₯ - μ΄λ¦„ν‘œλ₯Ό μ΄μš©ν•΄ 값을 κΊΌλ‚΄ μ‚¬μš© μ΄λ¦„ν‘œμ—λŠ” λ¬Έμžμ—΄κ³Ό μˆ«μžν˜•, νŠœν”Œμ„ μ‚¬μš©, κ°’μœΌλ‘œλŠ” μ–΄λ–€ μžλ£Œν˜•μ΄λ“  κ°€λŠ₯ - λ¦¬μŠ€νŠΈμ™€ λΉ„μŠ·ν•œ 방식 user = { '철수' : 'cheol', '영희' : 'young', '영수' : 'soo' } print(user['철수']) λ”•μ…”λ„ˆλ¦¬ μˆ˜μ • - μΆ”κ°€, μˆ˜μ • dict['three'] = 3 - μ‚­μ œ del(dict['one']) dict.remove('two') - λ”•μ…”λ„ˆλ¦¬λ₯Ό ν•©μΉ˜κΈ° dict1 = {1 : 100, 2 : 200} dict2 = {1 : 1000, 3 : 300} dict1.update(dict2) # {1 : 1000, 2 : 200, 3 : 300} λ”•μ…”λ„ˆλ¦¬μ™€ 반볡문 - κ²½μš°μ— 따라 ..

[Python] 리슀트, enumerate

리슀트 κ΄€λ ¨ λ©”μ†Œλ“œ - list1 = [1, 2, 3]일 λ•Œ appendλ₯Ό μ΄μš©ν•΄ 뒀에 리슀트 μš”μ†Œλ₯Ό μΆ”κ°€ν•  수 μžˆλ‹€. list1.append(4) 뒀에 μƒˆλ‘œμš΄ 리슀트λ₯Ό λ”ν•˜λŠ” 방법은 λ‹€μŒκ³Ό κ°™λ‹€. list2 = list1 + [4] - in 연산을 μ΄μš©ν•΄ λ¦¬μŠ€νŠΈμ— 값이 λ“€μ–΄μžˆλŠ”μ§€ 확인할 수 μžˆλ‹€. n = 12 # λ¦¬μŠ€νŠΈμ— μžˆλŠ”μ§€ 확인할 κ°’ if n in list1: print('{}κ°€ λ¦¬μŠ€νŠΈμ— 쑴재.'.format(n)) - λ¦¬μŠ€νŠΈμ—μ„œ ν•„μš”μ—†λŠ” 값을 μ§€μš°λŠ” 방법 del list[10] # 10번째 κ°’ μ§€μš°κΈ° list1.remove(4) # 4λΌλŠ” 값이 μžˆλŠ” 경우 μ‚­μ œ, μ—¬λŸ¬ 개일 경우 κ°€μž₯ μ•ž ν•˜λ‚˜λ§Œ μ§€μ›Œμ§ enumerate - λ¦¬μŠ€νŠΈκ°€ μžˆλŠ” 경우 μˆœμ„œμ™€ 리슀트 값을 μ „λ‹¬ν•˜λŠ” κΈ°λŠ₯ names = ['κ°€..

[Algorithm] START

μ•Œκ³ λ¦¬μ¦˜μ„ λ‹€μ‹œ μ‹œμž‘ν•˜λ©° ,, μš”μ¦˜ λ§Žμ€ κΈ°μ—…μ—μ„œ μ½”λ”© ν…ŒμŠ€νŠΈλŠ” ν•„μˆ˜κ°€ 된 것 κ°™λ‹€. 이전에 C++둜 μ•Œκ³ λ¦¬μ¦˜μ„ ν–ˆμ—ˆλŠ”λ° 카카였, 넀이버와 같은 기업을 Javaλ₯Ό 많이 μ‚¬μš©ν•œλ‹€. 그에 따라 μ•Œκ³ λ¦¬μ¦˜μ„ Java둜 ν• κΉŒ ν•˜λ‹€κ°€,, μ•Œκ³ λ¦¬μ¦˜μ„ Java둜 ν•˜κΈ°μ—” μ’€ μ–΄λ €μš΄ 감이 μžˆμ„ 것 κ°™λ‹€. κ·Έλž˜μ„œ Python으둜 μ•Œκ³ λ¦¬μ¦˜μ„ ν•˜κΈ°λ‘œ κ²°μ •ν–ˆλ‹€. Python 곡뢀 μ‹œμž‘ λŒ€ν•™κ΅ λ•Œ λΉ„μ „κ³΅μžλ₯Ό λŒ€μƒμœΌλ‘œ νŒŒμ΄μ¬μ„ κ°€λ₯΄μΉœ 적이 μžˆμ—ˆλŠ”λ°, λ„ˆλ¬΄ μ˜€λž˜λΌμ„œ λ‹€ κΉŒλ¨Ήμ€ 것 κ°™λ‹€. λ§Žμ€ 무료 κ°•μ˜κ°€ μžˆμ–΄ 그쀑 ν•˜λ‚˜λ₯Ό 선택해 μš°μ„  기초λ₯Ό κ³΅λΆ€ν•˜κΈ°λ‘œ ν–ˆλ‹€. 2~3일 λ™μ•ˆ 파이썬 곡뢀λ₯Ό ν•˜κ³ , μ•Œκ³ λ¦¬μ¦˜ 문제λ₯Ό ν’€ μ˜ˆμ •μ΄λ‹€. 파이썬 기초λ₯Ό 곡뢀할 μ‚¬μ΄νŠΈ https://programmers.co.kr/learn/courses/2 파이썬 ..