본문 바로가기

분류 전체보기

(249)
[BOJ] 1405. 미친로봇 문제 미친로봇 (https://www.acmicpc.net/problem/1405) 풀이 1. 초기 접근 문제조건 해석 움직임, 경로에 대한 문제고, 횟수가 정해져 있다. DFS, BFS 문제. 확률을 구해야 하므로, DFS, BFS 마지막 스텝에서 지금까지 구한 확률을 모두 더해줘야겠다. 마지막 스텝에서 지금까지의 확률을 가지고있어야 하니, 인자로 지금까지의 확률을 넘겨줘야겠다. 알고리즘 BFS가 먼저 떠올라 BFS로 구현. 코드 # 동서남북 순으로 방향 저장. dxs = [0, 0, 1, -1] dys = [1, -1, 0, 0] def bfs(x, y): q = [(x, y, 1)] step = 1 answer = 0 visited = {(x, y)} while q: size = len(q) nex..
헷갈리는 .reshape 과 broadcasting 이번엔 numpy 공부 중, 가장 헷갈렸던 .reshape() 과 이와 연관된 브로드캐스팅을 잠깐 복습 겸 기록해두려고 한다. 1. Reshape 사용법 너무나 당연한 이야기지만, .reshape 은 numpy array의 모양을 바꿔주는 역할을 한다. 잠깐 살펴보면 import numpy as np a = np.array([[1,1,1,1], [2,2,2,2]]) print(a) b = a.reshape((2,2,2)) print(b) # output: # [[1 1 1 1], # [2 2 2 2]] # [[[1 1], # [1 1]] # [[2 2], # [2 2]]] .reshape(2, 2, 2) 일 경우, 가장 안쪽부터 2개의 원소로 하나의 리스트 (ex. [2, 2]) 를 만들고 이런 리스트를..
파이썬 Asterisk(*)에 대해서 머신러닝을 위한 파이썬 워밍업을 수강하던 와중에, Asterisk(*) 에 관해, 새롭게 알게된게 있어서 적어본다. 파이썬 오픈소스들 보다보면, 함수 정의할 때 인자에 *args 식으로 인자가 정의되어있는 식으로 *을 종종본다. 사실 이전 포스트에서도 적었듯, 이 쓰임새를 아예 몰랐던 건 아닌데, 이번 강좌를 통해 더 깊이 알게되었다. 사실, Asterisk라고 부르는 것도 처음알게 되었다. 용도와 쓰임새를 하나씩 다시 복습해보자. 1. * 인자는 함수 내에서 튜플이다. 가장 직관적인 예는 다음과 같다. def a(*args): print(type(args)) print(args) a(1,2,3,4) # output: # # (1, 2, 3, 4) 보다시피 튜플이다. 따라서, 내부에서 list처럼 mut..
[삼성 SW Expert Academy] 1247. 최적 경로 문제 1247 [S/W 문제해결 응용] 3일차 - 최적 경로 풀이 1. 초기접근 문제조건 해석 N 모든 경우를 다 해보는 방법을 고려해보자. 가장 직관적인 방법은, 각 포인트의 거리들을 미리 구하고, 순열로 생성하며 모든 경우의 수를 탐색하는 것이다. 알고리즘 각 포인트들의 좌표를 가지고 만들 수 있는 모든 순열을 탐색해보며, 각 경우에서의 거리를 구해 최소 거리를 갱신. 순열을 만드는 방법은 파이썬 내장 함수인, itertools.permutations() 로 손쉽게 구현 코드 import itertools t = int(input()) for tc in range(1, t+1): n = int(input()) l = list(map(int, input().split())) # 회사, 집, 그리고 각 ..
[BOJ] 14888. 연산자 끼워넣기 문제 연산자 끼워넣기 (https://www.acmicpc.net/problem/14888) 풀이 1. 초기접근 문제조건 해석 N max_value else max_value min_value = res if res < min_value else min_value print(max_value) print(min_value) 2. 유의할 점 python으로 제출할 시, 시간초과가 뜸. pypy 로 제출하면 정답.
쥬피터 노트북 커스터마이징 & 티스토리 업로드 이번 글에서는, 쥬피터 노트북 스타일 커스터마이징부터, 티스토리 업로드까지 한 번에 다뤄보려고 한다. 사실 처음에는, 티스토리에 쥬피터 노트북으로 작업한걸 올리고 싶었는데, 기본 쥬피터 스타일을 티스토리에 그대로 올리면 영 이쁘지가 않았다. 그래서 쩌다보니, 내가 사용하는 쥬피터 스타일 자체도 바꾸게되었다. 최종적으로, 쥬피터 노트북은 다음과 같은 스타일로, (나는 github style을 사용했다.) 티스토리에는, 파이썬으로 데이터 시각화하기 1편. matplotlib. 이런식으로 올라간다고 보면 된다. 그리고, 이전에 쥬피터 커스터마이징 글들이 많이 참조하여, 쉽게 따라할 수 있었다. 1. Jupyter Notebook 스타일 바꾸기 일반적으로 pip install jupyter 로 쥬피터 노트북을 ..
파이썬으로 데이터 시각화하기 1편. matplotlib. 쥬피터에서 데이터를 시각화 하는 일반적인 방법을 정리해보려고 한다. 1편은 matplotlib 을 다루는 것으로, 이후에 pandas, seaborn 등으로 다루기 전에, 가장 기초와 기본이 되는 상식이라 할 수 있다. 기본 형태 일반적인 matplotlib 방식을 따른다. matploblib 를 사용하던 사람에겐 가장 친숙한 형태이고, 처음하는 사람들한테는, 가장 1차원적이고 직관적인 방법이다. 일단 기본적인 꼴은 다음과 같다. import matplotlib.pyplot as plt # figure, 즉 그래프를 표현할 액자를 먼저 만든다. plt.figure() # figure 를 출력한다. plt.show() 여기에 이제 데이터를 추가해 그래프를 그려보자. 선 그래프 plt.figure() # (..
티스토리 에디터, 마크다운 공식지원 발표!! 무려 오늘 3월 27일. 바로 오늘! 새로운 티스토리 에디터가 발표되면서,마크다운 지원을 해준다고 한다!! 네 정말 오래기다렸네요. 기술 블로그가 유독 많은 티스토리에, 개발자들이 좋아하는 마크다운 에디터가 없는게 정말 아쉬운 부분이었죠. 여하튼, 조금 늦은감이 없지않아 있지만, 지금이라도 마크다운을 공식적으로 쓸 수 있게 되어서 다행이다! 이제, Typora 에서 글쓴 뒤, html과 css 끼워맞추려고 여기저기 궁상 떨던 짓을 안해도 된다아! 신이 나므로, 새롭게 바뀐 에디터를 살펴보겠다!! 기본 모드 첫 인상은, 심플하고 이쁘다. 직관적이다. 필요한 것만 딱딱 있어서, 군더더기 없고, 내가 쓰고있는 15인치 맥북에 크기가 딱 맞다. 기본 폰트인 고딕체도 이쁘다!!! 개발자가 아니더라도, 누구나 글을..