본문 바로가기
반응형

파이썬23

[BOJ 1260] DFS와 BFS 파이썬 풀이 문제보기 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. www.acmicpc.net DFS와 BFS는 자주 쓰이는 알고리즘이기 때문에 정리해두면 좋습니다. 파이썬(Python3) 코드 from collections import deque def bfs(graph, start): for i in graph: graph[i].sort() explored, queue = set(), deque([start]) explored.ad.. 2019. 9. 21.
[파이썬(Python)] 회전행렬 / 2차원배열 회전하는 법 구현하기 알고리즘 문제를 풀면서 종종 2차원 배열을 회전하는 경우가 있습니다. 미리 정리해주면 좋을 것 같아서 회전 각도별로 코드 구현을 정리해봤습니다. 90도 회전 def rotate_90(m): N = len(m) ret = [[0] * N for _ in range(N)] for r in range(N): for c in range(N): ret[c][N-1-r] = m[r][c] return ret 180도 회전 def rotate_180(m): N = len(m) ret = [[0] * N for _ in range(N)] for r in range(N): for c in range(N): ret[N-1-r][N-1-c] = m[r][c] return ret 270도 회전 def rotate_270(m).. 2019. 9. 19.
파이썬(Python) 코드를 효율적으로 작성하는 법 Part 2 파이썬(Python) 코드를 효율적으로 작성하는 법 Part 1 1. 내장함수(built-in functions)를 사용하라. 파이썬으로도 효율적인 코드를 작성할 수 있습니다. 하지만 C언어로 작성된 내장함수를 이기기는 힘듭니다. 내장함수는 정말 빠릅니다. 파이썬 내장함수는 링크에서.. deepwelloper.tistory.com 1. 직관에 의존하지말고, 툴을 이용해 코드를 프로파일하라 속도 문제는 미묘할 수 있으므로 직관에 의존하면 안됩니다. "cprofile" 모듈을 사용하면 간단하게 파이썬 코드를 프로파일링할 수 있습니다. python -m cProfile myprogram.py 아래와 같이 테스트 코드를 작성했습니다. 위 그림은 프로파일링 결과입니다. 여기서 bottleneck은 "very_sl.. 2019. 9. 12.
파이썬(Python) 코드를 효율적으로 작성하는 법 Part 1 1. 내장함수(built-in functions)를 사용하라. 파이썬으로도 효율적인 코드를 작성할 수 있습니다. 하지만 C언어로 작성된 내장함수를 이기기는 힘듭니다. 내장함수는 정말 빠릅니다. 파이썬 내장함수는 링크에서 확인할 수 있습니다. Built-in Functions input() open() int() ord() isintance() pow() issubclass() print() iter() property() 2. 긴 문자열을 합칠 때는 join()을 사용하라. 여러 문자열들을 합칠 때 "+"를 사용할 수 있습니다. 파이썬에서 string은 immutable하기 때문에, "+"연산을 할 때 새 문자열을 만들고 기존 내용을 복사해야합니다. join()을 사용하십시오. # This is good.. 2019. 9. 12.
반응형