본문 바로가기
반응형

파이썬21

[알고리즘] Custom Sort String 이 글을 읽어주신 모든 분들 감사합니다. 간단하게 시작한 기술 블로그가 많은 분들에게 읽힐 줄은 몰랐습니다. 더 좋은 글이 나올 수 있도록 잘 작성하도록 노력하겠습니다. 포인트 이 문제는 원 데이터에서 순서가 주어진 문자열이 있을 때, 이 순서로 정렬을 할 수 있는가? 입니다. 단, 순서 문자열안에 포함되어 있지 않는 문자의 경우 어느 곳이든 둘 수 있습니다. 파이썬은 문자열을 처리하는데에 있어서 가장 심플하게 구현할 수 있었습니다. 저는 a, b 로 나누어 주어진 문자가 순서 문자열에 있는 경우와 없는 경우는 나누었고 순서가 주어진 문자열의 경우 우선순위 딕셔너리를 만들어 인덱스 순으로 저장한 뒤 이를 토대로 정렬을 하도록 구현하였습니다. 🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. pyth.. 2021. 7. 15.
[알고리즘] Candy 포인트 그리디 알고리즘을 잘 알고 있는가? 처음에는 브루트포스 접근으로 생각을 하였다. 하지만, 제한 조건이 2*10^4 이었고 아룰 n^2 이상으로 넘어갈 경우는 제대로 해결하지 못할 것으로 예상을 하여 다른 방식으로 해결하였다. 바로 그리디 방식으로 해결을 하는 것이다. for loop를 같은 깊이에서 여러 번 함으로 최대 O(n) 임으로 제한 시간안에 만족할 것으로 판단하였다. 🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. python class Solution: def candy(self, ratings: List[int]) -> int: left_right = [1] * len(ratings) right_left = [1] * len(ratings) sum = 0 for i in ran.. 2021. 6. 27.
[알고리즘] Max Area of Island 포인트 주어진 지도에서 섬들이 여러 개가 있다. 이 중에 제일 큰 섬의 크기를 구하라. 가 쟁점입니다. 그러면 섬의 크기는 어떻게 구할까요? 섬의 크기는 BFS 알고리즘을 이용하여 1 인 지점을 순회를 하면서 방문 배열의 표시를 해주면서 섬의 크기를 늘려가는 방식으로 구해줍니다. 어떻게 보면 너비 우선 탐색에 제일 기본형일고 할 수 있습니다. 🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. python class Solution: def bfs(self, row: int, col: int, visited: list, n: int, m: int, grid: list) -> int: q = deque() q.append([row, col]) visited[row][col] = 1 cnt = 1 dx .. 2021. 6. 1.
[알고리즘] 원판 돌리기 포인트 생각보다 까다롭지만 문제 자체는 이해하는 것이 그렇게는 어렵지 않으면서도 구현은 어려운? 무슨 말이지? 🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. python from collections import deque dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] def bfs(row: int, col: int) -> int: """ 같은 숫자, 방문하지 않는 곳, y는 범위 넘어가면 넘겨주기 :param row: :param col: :return: """ q = deque() q.append([row, col]) count = 0 while q: x, y = q.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i].. 2021. 4. 14.
반응형