본문 바로가기
반응형

프로그래밍54

[python] 리스트 원소 타입 바꾸기 (map함수사용) number = [1, 2, 3] number = list(map(str, number)) print(number) #['1','2','3'] 2020. 1. 16.
[python] 리스트 원소 2개씩 비교하기 a=[1,3,2,5,4] for p1, p2 in zip(a,a[1:]): print(p1, p2) # 13 # 32 # 25 # 54 2020. 1. 16.
[python] 딕셔너리 값 기준으로 정렬하기 d = {'minsu': 78, 'gunho': 64, 'sumin': 84, 'jiwon': 96, 'woosung': 55} ## key, value 둘 다 출력됨 result = sorted(s.items(), key=lambda x : x[1], reverse=True) #[('jiwon', 96), ('sumin', 84), ('minsu', 78), ('gunho', 64), ('woosung', 55)] ## key값만 출력됨 result = sorted(s, key=lambda x : s[x], reverse=True) #['jiwon', 'sumin', 'minsu', 'gunho', 'woosung'] 2020. 1. 13.
17616 등수 찾기 (python) 2. 등수 찾기 (17616) - BFS 문제조건 학생 두 명의 점수비교만 주어진다. 동점자는 없다. 학생 x의 가장 높은 등수와 낮은 등수는 ? 아이디어 학생 x보다 큰놈 몇명, 작은놈 몇명만 알면 된다. 누가 더 크고 작냐는 중요하지 않다. 가장 높은 등수 : 가장왼쪽에 있음 (작은놈), 가장 낮은 등수 : 가장 오른쪽에 있음 (큰놈) 으로 생각하자. 헷갈려 가장 높은 등수 : 1 + 학생x보다 작은 학생수 가장 낮은 등수 : 전체학생수 - 학생x보다 높은 학생수 Bfs 로 풀 수 있단다. wow 코드 from collections import deque def bfs(x, adj): rtn = 0 q = deque() q.append(x) visited[x] = True # 방문한 횟수가 학생 x보.. 2019. 12. 14.
17615 볼 모으기 (python) 1. 볼 모으기 (17615) 문제조건 빨간색 혹은 파란색 공 한 개만 움직일 수 있다. 뭉터기를 한 번에 건너뛰어 이동시킬 수 있다. 같은 색끼리 모으되 최소 이동횟수를 찾아라. 아이디어 총 4가지 경우가 있다. R을 옮기는데, R을 오른쪽으로 모으는 경우 R을 옮기는데, R을 왼쪽으로 모으는 경우 B를 옮기는데, B를 오른쪽으로 모으는 경우 B를 옮기는데, B를 왼쪽으로 모으는 경우 R을 움직일건데, R뭉터기가 있으면 고려할 필요가 없다. 뭉터기를 제외한 나머지 ball에서 쇼부를 치면 된다. 왼쪽으로 모으는 경우도 오른쪽으로 모으는 경우와 동일한 컨셉으로 이동하면 된다. ball 리스트를 역순으로 만들어 진행하면 된다. 코드 # 움직이려는 색깔 공이 뭉터기 되어 있는 부분은 고려할 필요가 없으니 p.. 2019. 12. 14.
[BOJ 1012 유기농배추] BFS와 DFS로 풀기 (python) 문제조건 연결요소(덩어리)의 개수를 찾는다. 가로, 세로와 행열 인덱스 주의하자. 핵심개념 pypy는 최대 재귀깊이가 10만으로 설정되어 있다. 이걸 넘으면 런타임에러가 발생한다. sys.setrecursionlimit(10**6) 100만으로 늘려준다. (참ㅋㅋㅋㅋㅋ) DFS가 BFS보다 메모리를 적게 쓰긴 하는구나. 코드 DFS (메모리 30276 KB) dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] import sys sys.setrecursionlimit(10**6) #재귀 깊이 설정 (10만 -> 100만) def dfs(x, y, _cnt): dist[x][y] = _cnt for k in range(4): nx, ny = x+dx[k], y+dy[k] if 0 2019. 10. 14.
반응형