본문 바로가기

Language_/python29

[Python] DFS(Depth-First Search) 정점의 Depth 구하기?! DFS 란?! [Python] Graph Traversals(Search) 그래프 순회(탐색) 정리 [python] Graph Traversals(Search) 그래프 순회(탐색) 정리 보통 그래프 문제에는 DFS(Depth-First Search)와 BFS(Breadth-First Search)가 있다. DFS는 깊이 우선 탐색이라 부르고 BFS는 너비 우선 탐색이라 부른다. - 컴공이라면 전공 시간에 배운다. 수리 논리, 이산.. security-nanglam.tistory.com DFS는 깊이 우선 탐색이다.. 위의 글을 보면 쉽게 이해할 수 있을 것이다. 예제 그래프 위 그래프 정점들의 깊이를 구할 것이다. [Python/파이썬] depth_list = [0] graph = { 1 : [2, 3].. 2021. 8. 7.
[Python] abs(절대값) 함수 정리 [프로그래머스] 부족한 금액 계산하기 [프로그래머스] 부족한 금액 계산하기 8월 1주차 위클리 챌린지다. [프로그래머스] 위클리 챌린지 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr 문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄 security-nanglam.tistory.com 위 문제를 풀면서 검색하게 된 함수다. 파이썬의 내장함수이고, abs(음수) = 양수, abs(양수) = 양수가 나오게 된다. abs 인자값에 정수형을 넣으면 정수형이 나오고, 실수형을 넣으면 실수형이 나온다. abs(-1) > 1 abs(1) > 1 abs(-1.1) > 1.1 abs(1.1) > 1.1 abs(0) > 0 abs(0.0) > 0.0 2021. 8. 6.
[Python] 진법 변환 총 정리?! [Pyhton 진법 변환] n진수 → 10진수 python에서는 기본적으로 int() 라는 함수를 지원합니다. int(string, base) 위와 같은 형식으로 사용하면 됩니다. base에는 진법을 넣으면 됩니다. print(int('111',2)) print(int('222',3)) print(int('333',4)) print(int('444',5)) print(int('555',6)) print(int('FFF',16)) 7 26 63 124 215 4095 이렇게 10진수로 쉽게 변경이 가능합니다. 10진수 → 2, 8, 16진수 2, 8, 16진수는 bin(), oct(), hex() 함수를 지원합니다. * 결과는 모두 string 입니다. print(bin(10)) print(oct(10)).. 2020. 12. 20.
[python] RuntimeError: deque mutated during iteration. 해결방법 prog = collections.deque([5,4,3,2,1]) answer = [] while len(prog) > 0 : tmp = prog.pop(0) cnt = 1 for i in prog : if tmp < i : break prog.pop(0) cnt += 1 answer.append(cnt) [프로그래머스] 기능개발 [프로그래머스] 기능개발 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 �� security-nanglam.tistory.com 프로그래머스 문제를 풀다가 RuntimeError: deque mutated during iterati.. 2020. 8. 22.
[python] Heapq 힙 모듈?! (heapq의 사용법) 힙(Heap) 은 그래프랑 트리와는 전혀 상관없는 이름을 가지고 있다.. 하지만 힙은 트리 기반의 자료구조이다. 모듈은 주로 heapq를 사용하며 파이썬에는 최소 힙만 구현되어 있다. 최소 힙이란 부모가 항상 자식보다 작기 때문에 루트가 결국 가장 작은 값을 갖는 형태다. 그러면 파이썬은 최소 힙이니 정렬이 되어 있어야 할까?? 아니다..! 부모가 가장 작다는 것만 만족하면 될 뿐 정렬이 되어 있을 필요는 없다. BST(이진 탐색 트리)랑 다른 점은 BST는 정렬이 되어있어 최상단 노드 왼쪽에는 최상단 노드보다 작은 값이 오고, 최상단 노드 오른쪽에는 최상단 노드보다 크거나 같은 값이 온다. 왼쪽인 최소힙이고 오른쪽이 BST의 예시이다. 최상단 노드를 기준으로 정렬의 차이가 보인다. Heapq 사용하기 .. 2020. 8. 14.
[python] startswith() 사용방법 정리 @.@ startswith.. 프로그래머스의 전화번호 목록을 풀면서 열심히 공부한 함수다.. [프로그래머스] 전화번호 목록 풀이 [프로그래머스] 전화번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입�� security-nanglam.tistory.com startswith()는 사용방법이 간단하다 우선 str.startswith(str or tuple) 형식으로 사용하면 되고, 반환 값으로는 True, False를 반환한다. string = "hello startswith" print(string.startswith("hello")) True string = "hell.. 2020. 8. 13.
[python] List to Dict (리스트를 딕셔너리로 변환) 총 정리!! 검색어 : List to Dict List 에서 Dict으로 변환하는 방법에는 여러가지 방법이 있습니다...! string_list = ['A','B','C'] 위와 같은 리스트가 있을때, 딕셔너리로 변환시키는 여러가지 방법들 ..! 1. Dictionary Comprehesion(딕셔너리 컴프리헨션) 이용 string_list = ['A','B','C'] dictionary = {string : 0 for string in string_list} print(dictionary) {'A': 0, 'B': 0, 'C': 0} 위의 방식을 조금 변경하면.. string_list = ['A','B','C'] dictionary = {string : i for i,string in enumerate(string.. 2020. 8. 13.
[python] Type Hint (타입 힌트) 정리 def func(a: int) -> int : b: int = 1 return a+b 요즘 파이썬의 코드들을 보면 이러한 타입 힌트들이 많이 보인다. 타입 힌트는 python 3.5 버전에서 나오게 되었다. 코드에 대한 가독성에 도움을 주고 사용자들이 헷갈리지 않게 하기 위해 나왔다. python 3.5 버전에서는 함수의 반환값에 대한 자료형만 지원했지만 [PEP484] def greeting(name: str) -> str: return 'Hello ' + name 이후 python 3.6 버전에서는 변수에도 타입 힌트 표기가 가능해졌다. def greeting(name: str) -> str: s: str = 'Hello ' + name return s 타입 힌트는 위에서 말했듯 3.5버전에서 나온 .. 2020. 8. 8.
[python] Graph Traversals(Search) 그래프 순회(탐색) 정리 보통 그래프 문제에는 DFS(Depth-First Search)와 BFS(Breadth-First Search)가 있다. DFS는 깊이 우선 탐색이라 부르고 BFS는 너비 우선 탐색이라 부른다. - 컴공이라면 전공 시간에 배운다. 수리 논리, 이산수학, 계산이론 등 이러한 시간에 DFS, BFS에 대해서 배웠다. 나무 위키에 있는 것이다.. 이거를 보면 이해하기가 쉬울 것이다. 번호 순서대로 탐색을 진행한다. DFS는 위 그림에서 보이듯 마지막 노드까지 깊게 탐색을 한다. * 1, 2, 3 ... 등 숫자가 써져있는 동그라미를 노드라고 부른다. BFS는 위 그림에서 보이듯 넓게 탐색을 한다. - BFS는 최단경로를 알아내는데 쓰인다. 일반적으로 알고리즘 문제에서는 BFS 보다는 DFS를 많이 쓰이게 된다.. 2020. 8. 7.
[Python] 변수명 Naming Convention 파이썬에서는 네이밍 컨벤션은 어떻게 표현을 할까? 우선 네이밍 컨벤션에는 세 가지 방법이 있다. 대문자로 구별하고 소문자로 시작하는 카멜 케이스(Camel case) _ Lower Camel Case camelCase: int = 1 대문자로 구별하고 대문자로 시작하는 파스칼 케이스(Pascal Cse) _ Upper Camel Case CamelCase: int = 1 _로 구별하는 스네이크 케이스(Snake case) snake_case: int = 1 위처럼 세가지 방식이 있다. 보통 카멜 케이스(Lower Camel Case)는 자바에서 많이 쓰인다. 하지만, 파이썬의 경우에는 스네이크 케이스로 변수명을 선언하는 경우가 많다. 꼭 스네이크 케이스로 사용해야 할까? 그렇지는 않다. 파이썬에서 카멜 .. 2020. 8. 7.
[python] 증감연사자가 있다? 없다?? 여러 언어들을 사용할 때 자연스럽게 ++이나 --와 같은 증감 연산자를 사용하곤 한다. 증감 연산자는 간편하기도 하고 코드의 양을 줄여 줄 수 도 있는 기능을 하는데, python에서는 증감 연산자가 없다.. python에서 a++, a--처럼 사용을 하면 오류가 난다.. ㅠ python은 반복문의 형태만 봐도 증감 연산자가 없다는 것을 눈치챌 수 있다. for(int i=0; i 2020. 7. 4.
[python] sorting Key Functions총 정리 [python 공식 문서] Sorting HOW TO — Python 3.8.4rc1 documentation Sorting HOW TO Author Andrew Dalke and Raymond Hettinger Release 0.1 Python lists have a built-in list.sort() method that modifies the list in-place. There is also a sorted() built-in function that builds a new sorted list from an iterable. In this documen docs.python.org sort와 sorted는 정렬 시 비교 기준이 되는 key parameter를 가질 수 있다. sorted("Th.. 2020. 7. 4.
[python] sort sorted 총 정리 sort와 sorted는 둘 다 정렬하는 함수다. sort와 sorted의 차이부터 알아보자. sort는 리턴값이 없지만 sorted는 새로운 리스트를 리턴한다. li = [3, 2, 1] print(li.sort()) print(sorted(li)) None [1, 2, 3] 또한, sort는 list의 값들을 변경시키지만 sorted는 list의 값들을 변경시키지 않는다. sort 함수 li = [3, 2, 1] li.sort() print(li) [1, 2, 3] sorted 함수 li = [3, 2, 1] sorted(li) print(li) [3, 2, 1] sorted 함수는 시퀀스 자료형 뿐만 아니라 순서에 구애받지 않는 자료형에도 적용할 수 있다. sort 함수 string = "hello.. 2020. 7. 3.
[python] sum max min 총 정리 [sum max min] 3개 모두 리스트에서 사용이 가능하다. sum은 리스트의 값들을 더하는 기능을 한다. max는 리스트에서 최댓값을 구하는 기능을 한다. min은 리스트에서 최솟값을 구하는 기능을 한다. ... 너무 당연하다 실습을 통해 확인해 보자. sum li = [1, 2, 3] result = sum(li) print(result) >> 6 1+2+3이므로 6이 나온다. sum 함수는 안에 range로도 사용이 가능하다. result = sum(range(1,4)) print(result) >> 6 위에 있는 코드와 같은 기능을 한다. sum 함수는 리스트에 있는 값들을 더하는 기능을 한다. max li = [1, 2, 3] result = max(li) print(result) >> 3 .. 2020. 7. 3.
[Python] Visual Studio Code 개발 환경 구축하기 Visual Studio Code를 지인에게 추천받아 한 번 써보는 김에 포스팅을 한다. python 설치하기 Visual Studio Code를 실행했을때의 화면이다. 왼쪽에 빨간색으로 되어 있는 아이콘을 클릭하자. python을 검색하면 맨 위에 Python이 있고 Install을 눌러 설치해주면 된다. Reload Required가 뜨면 다시 클릭해 주면 된다. (VsCode 버전에 따라 나오지 않을 수도 있다.) 위에 처럼 뜬다면 성공적으로 설치가 된것이다. python 코딩하기 왼쪽 맨 위에 File - New File을 통해 새로운 파일을 만들 수 있다. 새로 만들어진 파일에서 우측 클릭을 하면 Save As..로 파일명을 정할수 있는데 HelloWorld.py로 저장을 하자. print("H.. 2020. 7. 3.