Python 9

[알고리즘] 재귀(Recursion)

* 스스로 공부한 내용을 바탕으로 작성한 글입니다. 부정확한 부분이나 오류가 있을 수 있으며, 발견 시 댓글로 알려주세요! 알고리즘 카테고리에서 첫 번째로 다룰 것은 '재귀'이다. 재귀라는 것 자체는 알고리즘보다는 문법의 한 형태에 가깝다고 생각하지만, 앞으로 다룰 다양한 알고리즘들을 구현하기 위해 자주 활용되는 코드 작성 방식 중 한 가지이다. 그렇기 때문에 가장 먼저 다룰 주제로 선정해 보았다. 재귀가 무엇인지 살펴보겠다. 재귀란? 재귀란 함수 안에서 함수 자기 자신을 호출하는 것을 말한다. 때로는 순환이라고도 말하기도 한다. 재귀는 함수내부에서 자기 자신을 계속 호출하는 특징이 있기 때문에, 반드시 종료 조건을 만들어 주어야 한다. 그렇지 않으면 함수가 끝나지 않고 계속 반복되기 때문이다. 이런 상..

Python/Algorithm 2023.09.05

[자료구조] 스택(stack)

* 스스로 공부한 내용을 바탕으로 작성한 글입니다. 부정확한 부분이나 오류가 있을 수 있으며, 발견 시 댓글로 알려주세요! 파이썬의 다양한 자료구조 중, 스택이라는 개념이 있다. 스택이란 무엇이고, 파이썬에서 어떻게 활용하는지 알아보겠다. 스택이란? 스택은 가장 나중에 들어온 정보가 가장 먼저 처리되는 후입선출 LIFO(Last In First Out) 구조의 자료구조이다. 가장 쉽게 떠올릴 수 있는 예시로는 프링글스 통을 생각하면 된다. 빈 프링글스 통에 과자를 채울 때는 가장 밑바닥부터 채우게 된다. 우리가 과자를 꺼내 먹을 때는 가장 윗부분의 과자부터 먹게 된다. 이처럼 스택도 입력된 순서대로 앞에서부터 채워나가고, 저장된 데이터를 꺼내려고 하면 가장 최근 저장된 데이터부터 꺼낼 수 있다. 파이썬에..

[자료구조] 리스트, 튜플, 세트, 딕셔너리

* 스스로 공부한 내용을 바탕으로 작성한 글입니다. 부정확한 부분이나 오류가 있을 수 있으며, 발견 시 댓글로 알려주세요! 이전 포스팅에서 여러 자료형에 대해 알아보면서 문자열 자료형 및 세트와 딕셔너리에 대해 간단히 살펴보았다. 각 자료형마다의 특징이 뚜렷하고 다양한 연산이 가능하다. 그렇기 때문에 필요한 상황에 맞는 자료형을 골라 쓰기 위해서는 이들에 대해 제대로 이해하는 것이 중요하다. 따라서 리스트, 튜플, 세트, 딕셔너리에 대해 비교, 정리해 보도록 하겠다. 1. 리스트 우리는 변수 하나에는 하나의 값만을 저장할 수 있다. 하지만 여러개의 값을 하나의 변수로 지정하기 위해서는 어떻게 해야 할까? 다양한 방법이 있지만 그중 여러 값을 한 번에 저장하기 위해 가장 자주 사용하는 자료형은 리스트이다...

[자료구조] 변수와 다양한 데이터 타입(자료형)

* 스스로 공부한 내용을 바탕으로 작성한 글입니다. 부정확한 부분이나 오류가 있을 수 있으며, 발견 시 댓글로 알려주세요! 변수(variable)란, 프로그래밍에서 사용하는 다양한 값을 저장해 둔 객체라고 볼 수 있다. 보통 변수이름 = 값으로 정의한다. 변수를 선언할 때 다양한 데이터 타입을 사용할 수 있는데, 그 데이터 타입에 대해서는 뒤에서 마저 알아보겠다. 우선 변수명은 자유롭게 정의해도 괜찮으나, 반드시 피해야 할 단어가 존재하기도 하고 특정 규칙이 존재한다. 변수 명명과 관련된 규칙은 다음과 같다. 변수내의 대소문자를 구분한다. 영문자와 숫자를 모두 사용할 수 있다. (한글로 변수를 선언해도 되지만, 인코딩과 같은 자잘한 에러를 불러일으킬 가능성이 많아 권장하지 않는다.) 변수명은 반드시 영문..

[파이썬] 람다(lambda) 함수

* 스스로 공부한 내용을 바탕으로 작성한 글입니다. 부정확한 부분이나 오류가 있을 수 있으며, 발견 시 댓글로 알려주세요! 파이썬에서 코드를 작성하다 보면 반복되는 작업을 위해 함수를 선언해 주는 경우가 있다. 함수를 선언할 때는 함수의 이름과 매개변수, 함수에서 수행할 코드를 작성하면 된다. 어떤 때에는 함수에서 한 줄의 간단한 코드만 수행해야 할 때도 있다. 이런 때는 함수로 정의해도 좋지만, 람다 함수를 사용하여도 좋다. 람다 함수가 무엇인지 알아보자. 람다 함수는 이름없이 한 줄에 매개변수와 표현식만을 사용하면 된다. 람다함수는 정의한 곳에서 한 번만 사용가능하고, 일반 함수처럼 다시 불러와서 사용할 수 없다. 따라서 간단한 함수를 사용해야 하면서 코드에서 두 번 이상 사용하지 않는다면 람다 함수..

[파이썬] 예외처리 try, except

* 스스로 공부한 내용을 바탕으로 작성한 글입니다. 부정확한 부분이나 오류가 있을 수 있으며, 발견 시 댓글로 알려주세요! 파이썬 코드를 작성하다 보면 에러를 쉽게 마주칠 수 있다. 하지만, 에러가 발생하면 그 이후의 코드를 아무것도 수행할 수 없기 때문에 번거로운 부분이 있다. 그래서 코드에서 에러가 발생해도 이후의 작업을 수행할 수 있게 하기 위해, 예외 처리로 try, except문을 사용할 수 있다. 예외란? 문장이나 표현식이 올바르지 않을 때는 문법 에러가 발생되고, 이는 코드를 실행했을 때 출력단에서 에러가 난 코드의 위치와 에러를 알려주기도 한다. 하지만 이런 문법 에러가 없을 때도 에러가 일어날 때도 있다. 이렇게 코드를 실행했을 때 감지되는 여러 가지 에러를 예외라고 칭한다. 이런 예외의..

[파이썬] join 함수

* 스스로 공부한 내용을 바탕으로 작성한 글입니다. 부정확한 부분이나 오류가 있을 수 있으며, 발견 시 댓글로 알려주세요! 파이썬으로 코테 문제를 풀다 보면, 여러 값으로 이루어진 결과를 한 줄로 출력해야 할 때가 있다. 가장 흔한 예시로, 문제를 풀게 되면 정답을 리스트로 만들게 되는 때가 있을 텐데, 이때 리스트 안의 값들을 한 줄의 문자열로 표현할 수 있다. 그러기 위해 활용되는 것이 바로 join 함수이다! join 함수는 리스트를 원하는 구분자를 넣어서 연결하여 문자열로 반환하는 특징을 가지고 있다. 함수는 보통 다음과 같이 사용된다. '구분자'.join(리스트) 작은따옴표 사이의 구분자의 자리에는 빈칸이나 문자가 아무거나 들어와도 된다. 만약 작은따옴표에 아무것도 넣지 않고 ''. join(리..

[파이썬] 리스트 정렬 - sort & sorted

입력받은 리스트를 정렬하기 위해 사용하는 함수로는 sort와 sorted가 있다. sort() 파이썬의 메소드 중 하나로, 리스트의 내부 요소를 정렬해 주는 함수이다. sort 함수는 주어진 리스트를 정렬하고 덮어씌운다. 사용하기 위해서는 정렬하고 싶은 리스트 뒤에 .sort()를 붙이기만 하면 된다! 오름차순 정렬이 기본값이고, 내림차순으로 정렬하고 싶으면 괄호 안에 reverse=True를 작성해 주면 된다. # 오름차순 정렬 a = [3,7,2,4,6] a.sort() print(a) # 결과 : [2,3,4,6,7] # 내림차순 정렬 a.sort(reversed=True) print(a) # 결과 : [7,6,4,3,2] sorted() sorted 함수는 파이썬에 내장된 함수로써, 리스트의 내부..

파이썬 한글 깨짐 ( + 한글 자음 모음 분리 현상 )

파이썬과 matplotlib를 이용하여 데이터 시각화를 하다가 예상 못한 에러를 발견했다!! 1. 시각화 과정에서 한글 깨짐 ① ; 한글이 전부 네모로 표시 시작 전 다음 코드를 추가해서 폰트를 제대로 설치한 후 다시 실행하면서 해결할 수 있다. !sudo apt-get install -y fonts-nanum !sudo fc-cache -fv !rm ~/.cache/matplotlib -rf FONT_PATH = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf' font_name = fm.FontProperties(fname=FONT_PATH, size=10).get_name() print(font_name) plt.rcParams['font.family']=fo..

Python 2023.04.27