μ•Œκ³ λ¦¬μ¦˜

    sys.stdin.readline

    Java μ—μ„œ scanner 보닀 buffer κ°€ 더 가볍고 λΉ λ₯Έ κ²ƒμ²˜λŸΌ νŒŒμ΄μ¬μ—μ„œλ„ input() 보닀 sys.stdin.readline() 이 더 λΉ λ₯΄κ²Œ μž‘λ™ν•œλ‹€. μ΄μœ λŠ” input() λ‚΄μ—μ„œ raw_input()을 evaluate ν•΄μ„œ λΌλŠ”λ° μžμ„Έν•œκ²ƒμ€ λ‚΄λΆ€λ₯Ό λ“€μ—¬λ‹€ 봐야 ν•  것 κ°™λ‹€. μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œμ—μ„œ 만일 μž…λ ₯값이 λ„ˆλ¬΄ 크닀면(백만 μ΄μƒμ˜ 갯수) ν•œλ©΄ input()을 μ“°λŠ” 것을 μ§€μ–‘ν•˜μž. μž…λ ₯ 속도 비ꡐ 자료 [www.acmicpc.net/blog/view/56]

    κ°œλ°œν˜• μ½”λ”©ν…ŒμŠ€νŠΈ μ€€λΉ„λ₯Ό μœ„ν•œ HTTPν”„λ‘œν† μ½œ, REST API with python

    κ°œλ°œν˜• μ½”λ”© ν…ŒμŠ€νŠΈ κ°œλ… 정리 APIλž€ 무엇인가? -Application Programming Interface -ν”„λ‘œκ·Έλž¨λΌλ¦¬ 데이터λ₯Ό μ£Όκ³  λ°›κΈ° μœ„ν•œ 방식 데이터λ₯Ό μ£Όκ³  λ°›λŠ” μ„œλ‘œμ˜ κ·œμΉ™μ„ λ§Œλ“€μ–΄ λ†“μ•˜λ‹€ -> ν”„λ‘œν† μ½œ - 이것은 μ •ν•˜κΈ° λ‚˜λ¦„ - 많이 μ‚¬μš©ν•˜λŠ”κ²ƒμ€‘ ν•˜λ‚˜κ°€HTTP(hyper text transfer protocol) 예λ₯Ό λ“€μ–΄μ„œ ν™ˆνŽ˜μ΄μ§€μ— url을 μž…λ ₯ν•˜λ©΄ ν•΄λ‹Ή νŽ˜μ΄μ§€λ‘œ κ°€λŠ”λ° 이것이 http ν”„λ‘œν† μ½œμ΄λΌκ³  ν•  수 μžˆλ‹€. (http ν”„λ‘œν† μ½œ μˆœμ„œλ„) 1. λ‚΄κ°€ 보고 싢은 νŽ˜μ΄μ§€μ˜ url 을 λΈŒλΌμš°μ €μ—μ„œ μ„œλ²„ 츑으둜 보낸닀 2. μ„œλ²„λŠ” λΈŒλΌμš°μ € 츑으둜 응닡을 보내쀀닀 3. λΈŒλΌμš°μ €λŠ” μ„œλ²„μ—μ„œ 온 응닡을 가지고 μ‹œκ°ν™” ν•˜μ—¬μ„œ 화면에 λ‚˜νƒ€λ‚΄μ–΄ μ€€λ‹€. Pythonμ—μ„œ μ‚¬μš© 방법 1. request..

    Chapter 7. 이진탐색

    1. μˆœμ°¨νƒμƒ‰: 리슀트 μ•ˆμ— μžˆλŠ” νŠΉμ •ν•œ 데이터λ₯Ό μ°ΎκΈ° μœ„ν•΄μ„œ μ•žμ—μ„œ λΆ€ν„° 데이터λ₯Ό ν•˜λ‚˜μ”© μ°¨λ‘€λŒ€λ‘œ ν™•μΈν•˜λŠ” 방법 count()λ©”μ„œλ“œ λ˜ν•œ μˆœμ°¨νƒμƒ‰μ΄ μ΄μš©λœλ‹€. 2. 이진탐색: 이진탐색은 λ°°μ—΄ λ‚΄λΆ€μ˜ 데이터가 μ •λ ¬λ˜μ–΄ μžˆμ–΄μ•Όλ§Œ μ‚¬μš© ν•  수 μžˆλŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. λ³€μˆ˜ 3개λ₯Ό μ‚¬μš©ν•˜λŠ”λ° μ‹œμž‘μ , 끝점 그리고 쀑간 점을 μ΄μš©ν•œλ‹€. μ°ΎμœΌλ €λŠ” 데이터와 쀑간점 μœ„μΉ˜μ— μžˆλŠ” 데이터λ₯Ό 반볡적으둜 λΉ„κ΅ν•΄μ„œ μ›ν•˜λŠ” 데이터λ₯Ό μ°ΎλŠ”κ²Œ 이진탐색 과정이닀. μ‹œκ°„ λ³΅μž‘λ„λŠ” O(nlogn)이닀. (ν•œλ²ˆ ν™•μΈν• λ•Œ λ§ˆλ‹€ ν™•μΈν•˜λŠ” μ›μ†Œμ˜ κ°œμˆ˜κ°€ μ ˆλ°˜μ”© 쀄어듀기 λ•Œλ¬Έ) 이진탐색 μ‰½κ²Œ 보지 말자!!! 'μ‘΄ 벀틀리'(μƒκ°ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ°μ˜ ν•„μž) 의 말에 λ”°λ₯΄λ©΄ μ œλŒ€λ‘œ 이진 탐색 μ½”λ“œλ₯Ό μž‘μ„±ν•œ ν”„λ‘œκ·Έλž˜λ¨ΈλŠ” 10% 내외라 ν•  μ •λ„λ‘œ μ‹€μ œ κ΅¬ν˜„μ€ 까..

    Chapter 6. μ •λ ¬

    1. 선택정렬: 맀번 κ°€μž₯ μž‘μ€κ²ƒμ„ μ„ νƒν•΄μ„œ μ •λ ¬ μ•ˆλœ λΆ€λΆ„μ˜ κ°€μž₯ 첫번째 μœ„μΉ˜μ— μžλ¦¬μ‹œν‚¨λ‹€. tip) 파이썬의 μŠ€μ™€μ΄ν”„λŠ” 맀우 κ°„λ‹¨ν•˜λ‹€λŠ” 것을 μ΄μš©ν•˜μž -μ‹œκ°„ λ³΅μž‘λ„: O(n^2) 2. μ‚½μž…μ •λ ¬: 이미 μ •λ ¬λœ λ¦¬μŠ€νŠΈμ— 데이터 ν•˜λ‚˜λ₯Ό μ‚½μž… ν• λ•Œ μ μ ˆν•œ μœ„μΉ˜μ— μ‚½μž…ν•˜λ©΄ λ˜λŠ” 것을 μ°©μ•ˆν•œλ‹€λŠ” μ‹μœΌλ‘œ κ΅¬ν˜„ν•˜λ©΄ λœλ‹€. ν˜„μž¬ κ°€λ₯΄ν‚€κ³  μžˆλŠ” 인데슀 μ•žλΆ€λΆ„μ€ 이미 μ •λ ¬λ˜μ–΄ μžˆλ‹€κ³  λ³Έλ‹€(μ‹€μ œλ‘œ μ •λ ¬ λ˜μ–΄ μžˆμ„κ²ƒμ΄λ‹€.). 인덱슀λ₯Ό 점차 증가 μ‹œν‚€λ©΄μ„œ μ•žμ˜ 배열에 μ‚½μž…ν•˜λŠ” μ‹μœΌλ‘œ 거의 μ •λ ¬λœ λ¦¬μŠ€νŠΈμ— νš¨κ³Όμ μ΄λ‹€. - μ‹œκ°„ λ³΅μž‘λ„ : O(n^2), 거의 μ •λ ¬λ˜μ–΄ μž‡μ„ 경우 -> O(n) 3. 퀡정렬: μž¬κ·€μ‹μœΌλ‘œ μž‘λ™ν•œλ‹€. 3가지 포인트만 κΈ°μ–΅ν•˜μž 1. ν”Όλ²— μ •ν•˜κΈ° 2. μ™Όμͺ½ λΆ€λΆ„ 였λ₯Έμͺ½ λΆ€λΆ„ 각 두 μ§€μ μ—μ„œ μΆœλ°œν•˜μ—¬ μ™Όμͺ½ ..

    chapter5. DFS/BFS

    탐색(Search)λž€? -> 'λ§Žμ€ μ–‘μ˜ 데이터 μ€‘μ—μ„œ μ›ν•˜λŠ” 데이터λ₯Ό μ°ΎλŠ” κ³Όμ •' -λŒ€ν‘œμ μΈ 탐색은 DFS, BFS 자료ꡬ쑰(Data Struct)λž€? -> '데이터λ₯Ό ν‘œν˜„ν•˜κ³  κ΄€λ¦¬ν•˜κ³  μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ ꡬ쑰' -λŒ€ν‘œμ μΈ 자료ꡬ쑰 μŠ€νƒκ³Ό 큐 - First in Last out & Last in First out νŒŒμ΄μ¬μ—μ„œ μŠ€νƒμ„ μ΄μš©ν•  λ•Œμ—λŠ” λ³„λ„μ˜ 라이브러리λ₯Ό μ‚¬μš©ν•  ν•„μš”κ°€ μ—†λ‹€! κΈ°λ³Έ λ¦¬μŠ€νŠΈμ—μ„œ append() 와 pop()λ©”μ„œλ“œλ₯Ό μ΄μš©ν•˜λ©΄ μŠ€νƒ μžλ£Œκ΅¬μ‘°μ™€ λ™μΌν•˜κ²Œ λ™μž‘ν•œλ‹€. append()λ©”μ„œλ“œλŠ” 리슀트의 κ°€μž₯ λ’€μͺ½μ— 데이터λ₯Ό μ‚½μž…ν•˜κ³ , pop() λ©”μ„œλ“œλŠ” 리슀트의 κ°€μž₯ λ’€μͺ½μ—μ„œ 데이터λ₯Ό κΊΌλ‚΄κΈ° λ•Œλ¬Έμ΄λ‹€. - First in First out νŒŒμ΄μ¬μ—μ„œ 큐λ₯Ό μ΄μš©ν• λ•Œμ—λŠ” collections λͺ¨λ“ˆμ—μ„œ..

    chapter4. κ΅¬ν˜„

    μ½”λ”© ν…ŒμŠ€νŠΈ μ—μ„œ κ΅¬ν˜„(implementation)μ΄λž€? : 머릿속에 μžˆλŠ” μ•Œκ³ λ¦¬μ¦˜μ„ μ†ŒμŠ€μ½”λ“œλ‘œ λ°”κΎΈλŠ” κ³Όμ • 이라고 μ±…μ—μ„œ μ†Œκ°œν•˜κ³  μžˆλ‹€. 주둜 λ¨Έλ¦Ώμ†μ—μ„œ λ– μ˜¬λ¦¬κΈ°λŠ” μ‰½μ§€λ§Œ κ΅¬ν˜„μ΄ λ³΅μž‘ν•˜κ±°λ‚˜ μ–΄λ €μš΄ λ¬Έμ œλ“€μ΄ μΆœμ œλ˜λŠ” κ²½ν–₯이 λ§Žλ‹€κ³  ν•œλ‹€. 그럼 이λ₯Ό μœ„ν•΄μ„œ μš°λ¦¬λŠ” 피지컬을 ν‚€μ›Œμ•Ό ν•œλ‹€κ³  λ‚˜μ˜¨λ‹€. μ½”λ”©μ—μ„œ ν”Όμ§€μ»¬μ΄λž€, ν”„λ‘œκ·Έλž˜λ° 문법에 λŠ₯μˆ™ν•˜κ³  μ½”λ“œμž‘μ„ 속도가 λΉ λ₯Έ 것을 μΌμ»«λŠ”λ‹€. κ΅¬ν˜„μ—μ„œ 주의 ν•΄μ•Ό ν•  점듀을 λͺ‡κ°€μ§€ μ†Œκ°œ ν•˜κ³  μžˆλ‹€. μ •μˆ˜ν˜• μ’…λ₯˜ μžλ£Œν˜•μ˜ 크기 μžλ£Œν˜•μ˜ λ²”μœ„ int 4byte -2,147,483,648 ~ 2,147,483,647 long long 8byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 BigInteger(클래슀) 가변적..

    chapter 3. 그리디

    κ·Έλ¦¬λ””λŠ” νƒμš•μ μ΄λΌλŠ” 뜻으둜 'ν˜„μž¬ μƒν™©μ—μ„œ μ§€κΈˆ λ‹Ήμž₯ 쒋은 κ²ƒλ§Œ κ³ λ₯΄λŠ” 방법'을 μ˜λ―Έν•©λ‹ˆλ‹€. 그리디 μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν•˜λ©΄ 맀 μˆœκ°„ κ°€μž₯ μ’‹μ•„ λ³΄μ΄λŠ” 것을 μ„ νƒν•˜λ©°, ν˜„μž¬μ˜ 선택이 λ‚˜μ€‘μ— λ―ΈμΉ  영ν–₯에 λŒ€ν•΄μ„œλŠ” κ³ λ €ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 이 μ±…μ—μ„œλŠ” 그리디 μ•Œκ³ λ¦¬μ¦˜μ€ λ‹€λ₯Έ μ•Œκ³ λ¦¬μ¦˜κ³Ό λΉ„κ΅ν•΄μ„œ 비ꡐ적 '사전에 μ™Έμš°κ³  μžˆμ§€ μ•Šμ•„λ„ ν’€ 수 μžˆμ„ κ°€λŠ₯성이 높은 문제 μœ ν˜•' 이라고 μ†Œκ°œ ν•΄κ³  μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ‹€μ΅μŠ€νŠΈλΌ 같은 μ•Œκ³ λ¦¬μ¦˜λ„ μ΅œλ‹¨κ±°λ¦¬ μ΄λ©΄μ„œ κ·Έλ¦¬λ””λ‘œ λΆ„λ₯˜ λ˜λ―€λ‘œ λ¬΄μ‘°κ±΄μ μ΄μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€. λͺ‡κ°€μ§€ 감만 읡히면 그리디 μ•Œκ³ λ¦¬μ¦˜μ„ μ½”λ”©ν…ŒμŠ€νŠΈμ—μ„œ 틀릴 일을 μ—†λ‹€κ³  생각이 λ“­λ‹ˆλ‹€. μ œκ°€ 이 μ±…μœΌλ‘œ κ³΅λΆ€ν•˜λ©΄μ„œ 얻은 그리디 문제 풀이 방법에 λŒ€ν•œ νŒμ€ μ΅œμ†Œν•œμ˜ λ¬Έμ œμ— λŒ€ν•œ 아이디어λ₯Ό λ– μ˜¬λ¦¬κ³  그리디적 사고가 νƒ€λ‹Ήν•œμ§€λ₯Ό 슀슀둜 ..

    μ±… ꡬ맀 '이것이 취업을 μœ„ν•œ μ½”λ”© ν…ŒμŠ€νŠΈλ‹€ with 파이썬' -λ‚˜λ™λΉˆ μ§€μŒ-

    μ €λŠ” λ‚˜λ™λΉˆλ‹˜μ„ ꡉμž₯히 repect ν•©λ‹ˆλ‹€. μ΄λΆ„κ»˜μ„œ 책을 좜판 ν•˜μ…§λ‹€κΈΈλž˜ λ°”λ‘œ κ²Ÿλ„λ‹€μ°Œγ…Ž ν•΄λ²„λ ΈμŠ΅λ‹ˆλ‹€. 유투브둜 λ§€μ£Όλ§ˆλ‹€ Live둜 νŠΉκ°•λ„ ν•΄μ£Όμ‹œκΈΈλž˜ 이거 λ³΄λ©΄μ„œ κ°•μ˜ 듀을라고 λ°”λ‘œ μƒ€μŠ΅λ‹ˆλ‹€. λ°”λ‘œ 곡뢀 λ“€μ–΄κ°‘λ‹ˆλ‹€. 우리 λͺ¨λ‘ ν™”μ΄νŒ… ν•©μ‹œλ‹€.... [μ±… ꡬ맀: www.aladin.co.kr/shop/wproduct.aspx?ItemId=247882118]