컴퓨터 IT/Python
파이썬 기초 다지기 for 데이터 분석
파이썬 기초 다지기 for 데이터 분석
2023.05.30파이썬 기초 다지기 for 데이터 분석 숫자 e를 사용해서 매우 크거나 작은 숫자를 표현할 수 있다. 지수연산은 **이고, 제곱근 함수대신 지수 부분에 0.5를 입력해서 제곱근 결과를 알 수 있다. 77e3 #77*10*3 = 77000 123e-3 #123*10^(-3) = 0.123 2**3 #2*2*2=8 16**0.5 #root 16 = 4 튜플 원소가 하나인 튜플을 생성할 땐 쉼표를 꼭 넣어줘야 한다. 쉼표가 없으면 소괄호로 보고 튜플 생성 안된다. - 튜플은 내부 원소를 수정할 수 없다. - 수정하고 싶으면 새로운 튜플을 만들어야 한다. (777,) 딕셔너리 딕셔너리 dictionary는 키(key) 값 value 쌍으로 구성된다. dic_01 = {"key1": 1, "key2": [200,..
파이썬 람다 (lambda) 함수 예제
파이썬 람다 (lambda) 함수 예제
2023.02.27C언어에서 파이썬으로 넘어왔을 때 제일 이해하기 어려웠던 부분이 람다(lambda) 함수를 사용하는 것이었습니다. 저 같은 어려움을 느끼는 분들을 위해 이번 포스팅에서는 람다함수에 대해서 알아보겠습니다. 파이썬 람다 lambda 함수 뜻 lambda function is a small anonymous function. 람다 함수는 익명함수를 뜻합니다. 특정한 기능을 수행하는 함수를 한 줄로 작성할 수 있어서 간편하고, map, filter, reduce와 함께 쓰이면 빛나는 역할을 하는 함수입니다. def를 사용하지 않고, 함수를 정의하고, 여러 매개변수 사용이 가능하지만, 표현식은 하나만 사용할 수 있다는 점이 특징입니다. lambda 매개변수(arguments) : 표현식(expression) 알고..
나만 모르는 파이썬 replace 꿀팁
나만 모르는 파이썬 replace 꿀팁
2023.02.18문자열은 문자, 단어 등으로 구성된 집합을 의미합니다. 파이썬에서 문자열을 다루는 방법은 정말 다양한데요, 문자열을 자유자재로 다룰 수 있어야 원하는 툴을 만들 때 어려움이 없고, 알고리즘 문자열 관련 문제가 나와도 쉽게 당황하지 않을 수 있습니다. 문자열 관련 함수로는 아래와 같이 다양합니다. count find index join upper lower lstrip rstrip strip replace split 문자열 관련 함수 중에서 이 포스팅에서 다룰 함수는 replace입니다. 문자열을 바꿔주는 함수입니다. 파이썬 replace 기본 예제 replace는 대상 문자열, 대체 문자열 순서로 사용하여 문자열 안에서 대상이 되는 값을 대체 값으로 바꿔주는 함수입니다. 아래 예제에서는 You are 부..
파이썬 리스트 입출력, 초기화의 모든 것
파이썬 리스트 입출력, 초기화의 모든 것
2022.11.04C언어로 알고리즘 문제를 풀다가 파이썬 알고리즘 문제를 풀 때 마주치는 큰 벽 중 하나가 리스트(list)라고 생각합니다. a=[1,2,3,4] 이런 식으로 사용하면 되고, 슬라이싱 a [1: 3] 배울 때만 해도 나름 간단하다고 생각되지만, 코딩 문제에서 2차원 배열을 만드는 문제를 만나고, 입력이 특이한 알고리즘 문제를 만나면 공부를 쉬고 싶어 지는데요, 그래서 이번 포스팅에서는 파이썬 리스트 입출력, 초기화의 모든 것을 다룹니다. 파이썬 리스트 입출력, 초기화 정리 우선 이 포스팅에서 다룰 내용은 다음과 같습니다. 1. 리스트 생성 2. 입출력과 리스트 (1차원, 2차원) 파이썬 리스트 생성 파이썬에서 리스트를 생성하는 방법으로 2가지 방법이 있습니다. 첫 번째는 대괄호 []로 선언하는 방법이 있고..
파이썬 다익스트라 2가지 방법으로 구현 (for, heapq)
파이썬 다익스트라 2가지 방법으로 구현 (for, heapq)
2022.10.09최단 경로 알고리즘은 길 찾기 문제에서 사용할 수 있는 알고리즘입니다. 주로 '어느 한 지점에서 다른 특정 지점까지의 최단 경로를 구해야 하는 경우', '모든 지점에서 다른 모든 지점까지의 최단 경로를 모두 구해야 하는 경우'에 사용합니다. 이번 포스트에서는 'start 지점에서 다른 정점까지의 최단 경로를 찾는 다익스트라(dijkstra) 알고리즘에 대해서 소개합니다. 파이썬 다익스트라 알고리즘 다익스트라 최단 경로 알고리즘 그래프에서 여러 개의 노드가 있을 때, 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘입니다. 아이디어는 다음과 같습니다. 1. 출발 노드를 설정한다. 2. 최단 거리 테이블을 int(1e9)로 초기화한다. 3. 방문하지 않은 노드 중에서 최단 거리..
파이썬 다이나믹 프로그래밍 잘하는법
파이썬 다이나믹 프로그래밍 잘하는법
2022.10.04알고리즘 공부를 시작했을 때, 이름만 보고 거부감이 들기 쉬운 다이나믹 프로그래밍을 잘하는 방법을 소개합니다. 저는 코딩 테스트를 준비할 때 따로 학원에 다니지 않아서, 주변에서 '다이나믹 프로그래밍 문제 짜증이 나'라는 얘기를 들으면 약간 불안했습니다. 왜냐하면 이름만 듣고 주눅 들었기 때문이죠. '다이나믹 프로그래밍은 다이나믹한 기술을 사용하나? 어렵다고 하니까 정말 어렵나 보다.' 생각했습니다. 하지만 다이나믹 프로그래밍의 정의를 알고, 문제를 여러 개 풀어보니 다이나믹 프로그래밍은 수학 점화식을 찾아가는 과정이라고 결론 내렸습니다. 모든 알고리즘 문제가 그렇듯 특정 유형의 문제를 여러 개 풀어보니 dp가 두렵지 않았습니다. 아래 저의 solved.ac 결과를 보면 아시겠지만, 저는 dp, grap..
파이썬 이진 탐색 다양한 예제 코드
파이썬 이진 탐색 다양한 예제 코드
2022.09.28파이썬 알고리즘을 차근차근 알아가고 있는데요, 벌써 이진 탐색 부분입니다! 파이썬 이진 탐색 우선 이진 탐색은 탐색 범위를 반으로 좁혀가며 빠르게 탐색하는 알고리즘입니다. 이진 탐색은 배열 내부의 데이터가 정렬되어 있을 때 사용 가능한 알고리즘이고, 이미 정렬된 상황이라면 O(logN) 시간으로 빠르게 데이터를 찾을 수 있는 장점이 있습니다. 탐색 범위가 2000만을 넘어가는 경우 이진 탐색으로 문제에 접근하는 것이 좋습니다. 코딩 문제에서 처리해야 할 데이터의 개수나 값이 1000만 단위 이상으로 넘어가면 이진 탐색과 같이 O(logN)의 이하의 알고리즘을 생각해야 문제를 풀 수 있습니다. 파이썬 swap, 정렬 우선 이진 탐색을 하기 전에 필요한 sort 함수를 아래 코드를 통하여 알아보겠습니다. 첫..
파이썬 좌표 문제 입력 받는 방법(DFS, BFS) 퀵소트 코드
파이썬 좌표 문제 입력 받는 방법(DFS, BFS) 퀵소트 코드
2022.09.27파이썬 알고리즘 공부를 시작한 지 벌써 일주일이 지났습니다. 점차 2차원 리스트를 입력받는 부분도 익숙해지고, 함수 선언하는 부분을 자연스럽게 작성할 수 있게 됐습니다. 이번 포스트에서는 파이썬 좌표 문제에서 2차원 map이 주어졌을 때 입력받는 방법과 DFS, BFS를 다루고, 마지막 부분엔 퀵 소트 코드를 소개합니다. 파이썬 좌표 문제 C언어에서는 for문과 scanf()로 2차원 배열을 입력받는 것이 익숙했는데, 파이썬에서 2차원 리스트를 받으려면 조금 다른 발상이 필요합니다. [] 리스트로 먼저 초기화하고, append로 list안에 list를 채우는 방식으로 입력을 받을 수 있습니다. #2차원 리스트의 뱁 정보 입력 받기 #3 3 #001 #010 #101 graph =[] for i in ra..
파이썬 좌표 문제 쉽게 해결하는 방법
파이썬 좌표 문제 쉽게 해결하는 방법
2022.09.21파이썬 좌표 구현 문제 쉽게 해결하는 방법 알고리즘 문제 중에서 구현 문제로 좌표를 사용하는 문제가 자주 출제되는데, 좌표를 어떻게 받고, 이동하는 방법을 잘 외워두면 문제를 쉽게 해결할 수 있습니다. 파이썬 공백으로 구분되는 입력 받기 우선 문제를 풀려면 공백으로 입력되는 값을 잘 읽을 수 있어야 합니다. C언어라면 scanf()를 사용하여 받았겠지만, 파이썬에서는 input()을 이용하여 입력값을 받습니다. input().split()을 사용하면 공백을 기준으로 나누어서 저장할 수 있습니다. map(int, input().split())을 사용하는데, 공백을 기준으로 나눈 값을 int로 취급하겠다는 의미입니다. #입력값 #4 4 n, m = map(int, input().split()) #n=4, m..
이것이 취업을 위한 코딩 테스트다 파이썬 후기
이것이 취업을 위한 코딩 테스트다 파이썬 후기
2022.09.19이번 추석 연휴에 커리어에 대한 고민을 하면서, 코딩 테스트를 준비해야겠다고 생각했습니다. 이전에 '파이썬 알고리즘 인터뷰' 책을 가볍게 대충 읽었지만, 문제는 자세히 보지 않았는데, 본격적으로 파이썬 코딩 테스트를 준비하고 싶어서 이 책을 골랐습니다. 이것이 취업을 위한 코딩 테스트다 with 파이썬 IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년부터 2020년까지의 코딩 테스트와 알고리즘 대회의 기출문제를 엄선하여 수록하였다. 최근 5년간의 코딩 테스트 기출문제를 분석하여 반드시 알아야 하는 알고리즘을 8가지로 정리하였다. 8가지 핵심 알고리즘 이론을 쉽게 설명하고, 관련 실전 문제를 풀이했다. 출제 유형 분석, 이론 설명, 기출문제 풀이까지! 어떤 코딩 테스트도 이 책..
코딩 테스트 준비: 파이썬 알고리즘 인터뷰 후기 (1)
코딩 테스트 준비: 파이썬 알고리즘 인터뷰 후기 (1)
2022.08.09안녕하세요, 매주한책입니다. 이번에는 파이썬 코딩 테스트를 준비할 때 읽으면 좋은 책 "파이썬 알고리즘 인터뷰" 후기를 남겨보려고 합니다. 책을 읽은 이유: 최근에 백준 티어를 확인해봤는데, 골드1을 봤습니다. 그런데 과거에 풀었던 문제들 덕분에 골드1이 된 것이지, 제 실력이 골드1이라고 생각하지 않아서, 알고리즘을 공부해야겠다고 결심했습니다. 게다가 아래 풀었던 문제 분포도를 보면 알겠지만, 풀었던 알고리즘이 구현과 dp, 그래프에 몰려있습니다. 저의 약점은 String 부분이라 보강하고 싶었습니다. 저는 C언어로 코딩하는 스타일에 익숙해진 편이라서 python에 익숙하지 않습니다. 게다가 저는 백준 사이트에서 문제를 푸는 것이 익숙해서 프로그래머스 사이트가 익숙하지 않습니다. scanf()로 입력을..
matplotlib, plt scatter 완벽 정리: 파이썬 머신러닝 판다스 데이터 분석(3)
matplotlib, plt scatter 완벽 정리: 파이썬 머신러닝 판다스 데이터 분석(3)
2022.08.06안녕하세요, 매주한책입니다. 이번 포스트에서는 시각화 도구와 데이터프레임을 다루는 데 쓰이는 메소드를 정리하였습니다. 이 책을 읽으면서, 혼자 공부하는 머신러닝+딥러닝 책을 읽기 전에 이 책을 먼저 읽었으면 이해가 더욱 빨랐으리라 생각했습니다. 혼자 공부하는 머신러닝 책을 읽을 땐, 판다스와 데이터프레임에 대해서 잘 이해하지 못해서 코드를 읽기에 어려움이 있었는데, 파이썬 머신러닝 판다스 데이터 분석 책을 읽으면서 궁금했던 부분이 깔끔하게 해소됐습니다 ^^. 궁금증이 해소됐던 부분을 정리해보겠습니다. 데이터 분석을 하다 보면 시각화하여 데이터의 구조를 파악할 때가 있습니다. 이때 사용하면 좋은 것이 matplotlib입니다. matplotlib은 파이썬 표준 시각화 도구라고 부를 수 있을 정도로 그래프에..