분류 전체보기
[Python/에러] : maximum recursion depth exceeded in comparison
파이썬에서 maximum recursion depth exceeded in comparison 에러가 발생하는 경우 1. 원인 파이썬에서는 재귀 호출 횟수를 제한하고 있다. 2. 어떤 상황에서 일어나는가? default값으로 설정되어 있는 재귀 호출 횟수(약 1000번?)을 넘어서면 에러가 발생한다. 3. 어떻게 해결하는가? 재귀 호출 횟수를 늘려주면 된다. import sys sys.setrecursionlimit(10**7) 처럼, 임의로 호출 횟수를 늘려주자.
(Python) 백준 2455번 : 지능형 기차
출처 : https://www.acmicpc.net/problem/2455 2455번: 지능형 기차 최근에 개발된 지능형 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. 이 장치를 이용하여 출발역에서 종착역까지 가는 도중 기차 안에 사람이 가장 많을 때의 사람 수를 계산하려고 한다. 단, 이 기차를 이용하는 사람들은 질서 의식이 투철하여, 역에서 기차에 탈 때, 내릴 사람이 모두 내린 후에 기차에 탄다고 가정한다. 내린 사람 수 www.acmicpc.net 알고리즘 분류 : 시뮬레이션 (Python) 백준 2455번 : 지능형 기차¶알고리즘 분류 : 시뮬레이션 출처 : https://..
(Python) 너비 우선 탐색(BFS) 구현하기
(Python) 너비 우선 탐색(BFS) 구현하기¶ In [1]: from IPython.display import Image Image("img/bfs_graph.png") ## code안에서 그림이 나오게 할 떄 # ![title](img/bfs_graph.png) ## markdown안에서 그림이 나오게 할 때 Out[1]: DFS에서는 반복문(iteration), 재귀(recursive)적인 방법으로 구현했었는데 BFS의 경우 반복문(iteration)을 이용해서 구현을 해야 한다. 반복문(iteration) DFS : stack 이용 DFS 방문 순서 : A B D E F C G H (왼쪽 노드부터 방문한다고 가정할때) BFS : queue 이용 BFS 방문 순서 : A B C D E G H F..
(Python) 깊이 우선 탐색(DFS) 구현하기
깊이 우선 탐색(DFS) 구현하기¶ In [1]: graph = {'A':['B','C'], 'B':['A','D','E'], 'C':['A','G','H'], 'D':['B'], 'E':['B','F'], 'F':['E'], 'G':['C'], 'H':['C']} 반복문(iteration)을 이용해서 DFS 구현하기¶dfs는 stack을 이용해서, bfs는 queue를 이용해서 구현할 수 있는..
(Python) 백준 17779번 : 게리맨더링2
출처 : https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름도 재현시로 변경했다. 이번 선거에서는 최대한 공평하게 선거구를 획정하려고 한다. 재현시는 크기가 N×N인 격자로 나타낼 수 있다. 격자의 각 칸은 구역을 의미하고, r행 c열에 있는 구역은 (r, c)로 나타낼 수 있다. 구역을 다섯 개의 선거구로 나눠야 하고, 각 구역은 다 www.acmicpc.net 백준 / 17779번 / 게리맨더링 2¶ In [8]: # for 블로그 포스팅 from IPython.core.dis..
[Python/내장함수] 예외 처리하기 (try / except문)
[Python] 예외 처리하기¶ 일단 코드부터 실행하고, 에러가 발생하면 그때 처리한다! 코드와 프로그램 논리를 추가해서 나쁜 일이 생기지 않도록 사전에 막기보다는, 파이썬의 예외 처리 메커니즘을 이용해서 일단 에러가 발생하도록 놔두고, 에러가 발생하면 이를 발견해서 복구할 수 있는 기회를 제공한다 발생할 수 있는 모든 에러를 처리하는 코드를 만들려면 코드 작성에 많은 시간이 걸리기 때문에 예외처리는 많은 도움이 된다. 보호해야할 필요가 있는 부분은 어디일까? 고민! 런타임에 발생하는 에러에 상관없이 그것을 무시하거나 에러 메세지를 출력하도록 하므로 모든 에러가 처리된다. 범용적이라 좋긴 한데.. 실제로 신경써야 하는 에러는 IOError와 ValueError이다. 프로그램을 개발할 때 실제로 일어나는 ..
[Python/os] txt파일 읽어오기
[Python] 파일 읽어오기¶ 파이썬은 어떻게 파일에서 데이터를 읽어올까? 파일은 단지 여러 라인으로 구성된 텍스트이다. 파이썬의 기본 입력 메커니즘은 "라인"을 기반으로 한다. 데이터를 텍스트 파일에서 프로그램으로 읽어 들이면 한 번에 한 라인씩 가져온다. In [2]: import os os.getcwd() # 현재 디렉터리 확인 Out[2]: 'C:\\Users\\Juhee\\jupyter_workspace' In [3]: os.chdir('./Python') # 데이터 파일이 있는 폴더로 이동 os.getcwd() # 현재 디렉터리 확인 Out[3]: 'C:\\Users\\Juhee\\jupyter_workspace\\Python' 백준 사이트에서 파이..
[Python/내장함수] range와 enumerate 함수
[Python] range(), enumerate()¶ range()함수에 대해서 알아보자¶ In [1]: # range(start, stop, step) # 필요에 따라 주어진 범위의 일련의 숫자를 생성하는 나열자를 반환한다. print(range(10)) print(type(range(10))) range(0, 10) In [2]: list(range(10)) Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [3]: tuple(range(10)) Out[3]: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) In [4]: set(range(10)) Out[4]: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} In [5]: for i in range(10): ..
[Python/내장함수] isinstance 함수
[python] isinstance() : 식별자가 특정 형의 데이터를 갖고 있는지 확인한다.¶ In [1]: a_list = [1,2,3,4,5] # a_list는 리스트인가? isinstance(a_list, list) Out[1]: True In [2]: a_string = "what is your name?" # a_string은 str인가? print(isinstance(a_string, str)) #a_string은 int인가? print(isinstance(a_string, int)) True False In [3]: a_int = 3 # a_int는 int인가? print(isinstance(a_int, int)) # a_int는 float인가? print(isinstance(a_int, ..
(Python) 백준 14503번 : 로봇 청소기
출처 : https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다. 로봇 청소기는 다음 www.acmicpc.net 백준 14503번 : 로봇 청소기¶ 시뮬레이션 In [1]: N,M = map(int, input().split()) #..