[백준] 2448번 : 별찍기 - 11 (파이썬)
·
Algorithm/Recursion
재귀, 분할정복 문제https://www.acmicpc.net/problem/2448 접근 방식 별은 위와 같이 n // 2로 분할해도 같은 형상을 갖는다. 즉, 특정 패턴이 반복되어 나타내는 것을 볼 수 있다. 이는 전형적인 분할정복 문제의 특징이다. 분할정복 문제는 재귀로 풀면 쉽게 풀리므로 나 또한 재귀로 접근해겠다.  💡 풀이코드 (성공)import sysn = int(sys.stdin.readline())graph = [[' '] * n * 2 for _ in range(n)]def star(n, r, c): if n == 3: graph[r][c] = '*' for j in range(c - 1, c + 2): if j == c: contin..
[백준] 5639번 : 이진검색트리 (파이썬)
·
Algorithm/Recursion
재귀 문제https://www.acmicpc.net/problem/5639  풀이코드  (실패, 시간초과)# 무한입력을 위해 try - except 추가# 25%에서 시간초과 코드 import syssys.setrecursionlimit(10**9)class Node: def __init__(self, data): self.data = data self.left = None self.right = Nonedef insert(root, data): if root == None: return Node(data) else: if root.data > data: # 왼쪽 root.left = insert(root..
[백준] 1074번 : Z (파이썬)
·
Algorithm/Recursion
재귀, 분할정복 문제 https://www.acmicpc.net/problem/1074 풀이코드  (실패1, 메모리초과)import sys N, r, c = map(int, sys.stdin.readline().split())arr = [[-1] * 2 ** N for _ in range(2 ** N)]def visit(n, i, j): global cnt, r, c if n == 1: arr[i][j] = cnt cnt += 1 else: if arr[r][c] != -1 : return newSize = n // 2 visit(newSize, i, j) visit(newSize, i, j + newSize) ..
[프로그래머스] : lv.3 - 단어 변환 (파이썬)
·
Algorithm/Graph
https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr BFS 문제  문제코드from collections import dequedef bfs(queue, words, target): while queue: now, counts = queue.popleft() if target == now: return counts for i in range(len(words))..
파이썬 라이브러리 defaultdict
·
Algorithm/Dictionary
파이썬에서는 defaultdict라는 편리한 라이브러리를 제공한다.  defaultdict란?defaultdict는 Python의 collections 모듈에 있는 클래스입니다. 기본 딕셔너리와 비슷하지만, 키가 존재하지 않을 때 KeyError를 발생시키는 대신 자동으로 기본 값을 생성해주는 딕셔너리입니다. dictionary 구현법 (defaultdict 라이브러리 사용 X)defaultdict를 사용하지 않고 일반 딕셔너리를 사용하여 동일한 작업을 수행할 수 있습니다. 이를 위해서는 키가 존재하지 않을 때 기본값을 수동으로 설정해주어야 합니다. 기본값이 int인 경우d = {}if 'a' not in d: d['a] = 0d['a'] += 1if 'b' not in d: d['b'] = 0d['b'..
[백준] 1504번 : 특정한 최단 경로 (파이썬)
·
Algorithm/Graph
Dijkstra 문제https://www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존www.acmicpc.net 💡 풀이코드 1  (성공)import sysimport heapqimport copynode, edge = map(int, sys.stdin.readline().split())graph = [[] for _ in range(node + 1)]visited = [[False] for _ in range(node + 1)]for i in ..
_은선_
'Algorithm' 카테고리의 글 목록 (8 Page)