본문으로 바로가기

Daim's blog

네비게이션

  • 홈으로
  • 블로그소개
관리자
  • 블로그 이미지
    다임하게

    파이썬으로 다양한 알고리즘 문제를 풀고 정리하는 공간입니다 : )

    링크추가
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃

Python 클로저(closure) 이해하기

클로저(closure)란 자신이 정의된 스코프에 있는 변수를 참조하는 함수이다. 파이썬은 클로저를 지원한다. 이 포스팅은 Python의 클로저의 특성을 이해하기 위하여 작성되었으며, "파이썬 코딩의 기술"이라는 책을 참고하였고 나중에 다시 보아도 이해하기 쉽도록 지금 내가 이해한 바를 바탕으로 설명을 추가하였다. 코드를 보고 클로저를 이해하자 1 2 3 4 5 6 7 8 9 10 11 12 13 def sort_priority(values, group): def helper(x): if x in group: return (0, x) return (1, x) values.sort(key=helper) print(values) numbers = [8, 3, 1, 2, 5, 4, 7, 6] group = {2..

Python/python 파헤치기 2019. 6. 11. 09:00

Python에서 로그를 남기는 방법

이 포스팅은 Python의 기본적인 logging 방법에 대해서 이해하기 위해 작성되었다. 이 포스팅의 최종 목표는 개발자가 로그를 어떻게 작성하는 것이 로그를 잘 활용할 수 있는지에 대한 방법을 알아보는 것이다. 몇개의 포스트로 나눠 작성될지 모르겠으나 연속된 포스팅이 불가능할 수도 있으므로, Logging과 관련된 링크는 아래에 추가하는 것으로 대신하도록 하겠다. Logging이란 무엇인가 개발자가 시스템을 24시간 들여다보고 있을 순 없을 뿐더러 시스템이 오류 없이 항상 완벽게 동작할거라 보장할 수는 없다. 즉, 언제 어느 때든 예상하지 못한 시스템의 오류가 발생할 수 있고 이를 위한 후속 조치가 이뤄질 수 있도록 해야한다는 의미이다. 개발자가 오류를 고치기 위해서는, 에러가 발생하였을 당시의 시스..

Python/python 파헤치기 2019. 5. 17. 21:00

객체 지향 프로그래밍 특징 (추상화, 캡슐화, 상속, 다형성)

객체 지향 프로그래밍 (OOP : Object-Oriented Programming) 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중에 하나이다. 패러다임이란 프로그래밍을 어떤 관점에서 해나갈 것인가에 대한 고민이다. 기존 절차 지향 프로그래밍 언어들이 프로그램의 프로세스 흐름을 표현(명령어의 목록이다라고 생각)하는데 중점을 두었다면, 객체 지향 프로그래밍 언어들은 데이터나 정보의 표현에 중점을 둔 언어들이다. 프로그램을 여러 개의 독립적인 단위, 즉 '객체'들의 모임으로 생각하는 것이다. 추가적으로 함수형 프로그래밍은 상태값을 지니지 않는 함수값들의 연속으로 생각할 수 있게 해준다. 자바는 대표적인 객체 지향 패러다임을 따르는 언어지만 jdk 1.8부터 함수형 프로그래밍 패러다임을 지원하기 위해 ..

Python/python 파헤치기 2019. 5. 13. 15:00

Python의 변수(Variable)는 다른 언어와 무엇이 다를까

변수의 정의 일반적으로 변수란 데이터를 저장할 수 있는 메모리 공간 자체를 의미한다. 변수는 숫자와 문자 뿐만 아니라 객체, 혹은 함수(람다 함수)까지도 담을 수 있다. 변수에 담긴 값이나 가리키는 대상은 프로그램 실행 도중에 언제라도 변경될 수 있다. 언제든지 값이 변경될 수 있어서 변수라고 하는 것이다. Python의 변수가 다른 언어와 다른 점 Python의 변수는 다른 언어와는 약간 차이가 있다. 다른 언어들이 값이 담겨 있는 공간의 별칭을 '변수'(variable)라고 말한다. 그러나 파이썬은 변수라는 메모리 공간에 값을 직접 저장하지 않는다. 알다시피, 파이썬에서 사용되는 모든 것(변수, 클래스, 함수 등등)들은 '객체'이다. 우리가 변수에 저장한다고 생각한 '객체'들은 실제로는 다른 메모리 ..

Python/python 파헤치기 2019. 4. 24. 17:00

Python 내장 함수의 시간 복잡도

Python 컨테이너 메소드의 시간 복잡도(time complexity)는 어떻게 될까? 알고리즘을 풀면서 컨테이너를 조작하기 위해 기본 메소드들을 많이 활용하게 되었고, 메소드의 시간 복잡도가 궁금해졌다.경우에 따라서 어떤 메소드를 사용하느냐가 알고리즘의 시간 복잡도를 크게 좌지우지 할때가 있다. 물론 문제를 푸느냐 못푸느냐는 대부분 내 알고리즘이 문제이고, 메소드가 문제를 해결하는데 큰 영향을 미치는 경우는 드물다.그럼에도 궁금한 부분은 바로바로 정리해두는게 좋을 것 같아,이 포스팅에서는 python의 컨테이너별로 메소드의 시간 복잡도를 정리하려고 한다.시간 복잡도는 아래의 표와 같이 표기하고 읽는다. 아래로 내려갈 수록 시간이 오래 걸림을 뜻한다.시간 복잡도에 관한 자료는 Python 위키 문서에서..

Python/python 파헤치기 2019. 2. 14. 23:30
  • 이전
  • 1
  • 다음

사이드바

NOTICE

  • 내 맘대로 파이썬 커리큘럼
  • 삼성 SW Expert Academy 푼 문제 리스트
  • LeetCode에서 푼 문제 리스트
  • 백준에서 푼 문제 리스트
  • 정리한 알고리즘 리스트
  • 전체 보기
MORE+

CATEGORY

  • 분류 전체보기 (136)
    • Project (9)
      • pre-work (1)
      • gist (8)
    • Python (5)
      • PYCON 2019 (0)
      • python 파헤치기 (5)
      • cheat sheet (0)
      • module (0)
    • Data structure (9)
    • Algorithm (0)
    • 온라인 코딩 테스트 문제 풀이 (104)
      • 문제 풀이 전략 (1)
      • LeetCode 문제 풀이 (42)
      • 백준 문제 풀이 (33)
      • 삼성 SW Expert 문제 풀이 (26)
      • 프로그래머스 문제 풀이 (2)
      • HackerRank 문제 풀이 (0)
    • Database (6)
      • MySQL (6)
    • Network (1)
    • Tools (2)
      • Git (2)

RECENTLY

  • 최근 글
  • 최근 댓글

최근 글

최근댓글

Trackback

TAG

  • DP
  • python으로 푸는
  • 백준
  • 파이썬 자료구조
  • python data structure
  • leetcode
  • Dynamic Programming
  • leetcode python
  • 삼성 코딩 테스트
  • Django tutorial
  • 삼성 기출 문제
  • Tree
  • SW Expert Academy
  • SW Expert
  • leetcode 파이썬
MORE+

CALENDAR

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

VISITOR

오늘
어제
전체
  • 홈으로
  • 방명록
  • 로그인
  • 로그아웃
  • 맨위로
SKIN BY COPYCATZ COPYRIGHT Daim's blog, ALL RIGHT RESERVED.
Daim's blog
블로그 이미지 다임하게 님의 블로그
MENU
  • 홈으로
  • 블로그소개
CATEGORY
  • 분류 전체보기 (136)
    • Project (9)
      • pre-work (1)
      • gist (8)
    • Python (5)
      • PYCON 2019 (0)
      • python 파헤치기 (5)
      • cheat sheet (0)
      • module (0)
    • Data structure (9)
    • Algorithm (0)
    • 온라인 코딩 테스트 문제 풀이 (104)
      • 문제 풀이 전략 (1)
      • LeetCode 문제 풀이 (42)
      • 백준 문제 풀이 (33)
      • 삼성 SW Expert 문제 풀이 (26)
      • 프로그래머스 문제 풀이 (2)
      • HackerRank 문제 풀이 (0)
    • Database (6)
      • MySQL (6)
    • Network (1)
    • Tools (2)
      • Git (2)
VISITOR 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바