전체 글
[백준2644&파이썬] 재귀식을 이용한 DFS 사용할때는 실패케이스에 대한 반환값을 생각하자
# 문제 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net # 코드 ## DFS import sys n = int(sys.stdin.readline()) # 전체 사람의 수 a,b = map(int,sys.stdin.readline().split()) # 촌수를 계산해야하는 a,b m = int(sys.stdin.readline()) # 관계의 개수 ddict = [ [] * 1 for _ in range(n+1)] # 인접리스트 만들기 visit = [False] * (n+1) for i ..
[백준11725&파이썬] BFS와 DFS에서 그래프 인접리스트의 활용
# 문제 백준 11725 트리의 부모찾기 파이썬 풀이 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net # 코드 import sys from collections import deque from collections import defaultdict N = int(sys.stdin.readline().strip()) ddict = defaultdict(list) result = [-1] * (N+1) for i in range(N-1) : a,b = map(int,sys.stdin.readline().strip().split()) ddict[a].append(b) ddict[..
[백준1520&파이썬] DFS에 메모이제이션을 곁들여서 시간초과를 해결하자
# 문제 백준 1520 내리막길 파이썬 풀이 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net # 코드 ## 성공한 코드 import sys M, N = map(int,sys.stdin.readline().split()) # M : 행 , N : 열 board = list() memo = [ [-1] * N for _ in range(M)] for _ in range(M) : line = list(map(int,sys.stdin.readline().split())) board.append(line) dirs = [ ..
[백준1987&파이썬] DFS와 백트래킹을 이용하여 조건에 맞는 값을 구하자
# 문제 백준 1987 알파벳 파이썬 풀이 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net # 코드 ## 성공한 풀이 import copy import sys from collections import deque R, C = map(int, sys.stdin.readline().split()) dirs = [ (-1, 0), (0, 1), (1, 0), (0, -1) ] # visit = [[True] * C for _ in range(R)] 방문처리가 필요하지 않음 board = list() max_..
[Object Oriented S/E] Chapter 5 - Domain Modeling
# 범위 105page ~ # 내용 ## 5.1 WHAT IS DOMAIN MODELING? 도메인 모델링은 개념화 프로세스이다. 중요한 도메인 개념, 속성 및 개념 간의 관계를 식별하는 것을 목표로 하며, 결과는 도메인 모델이라는 다이어그램으로 표현된다. 은행 시스템을 구조화 할때, 은행사업에 대한 이해가 필요할것이고 그걸 기반으로 entities나 object를 이해할 수 있을 것이다. 이러한 이해를 위해서 어플리케이션과 관련된 정보들을 수집하고 분석하고 모델을 세워야 하는데 이러한 활동을 하는 과정들이 도메인 모델링이다. ## 5.2 WHY DOMAIN MODELING? 소프트웨어 엔지니어들은 프로젝트 내에서 다른 도메인에서 일하고, 그들의 배경이나 경험들에 따라서 도메인을 다른 관점으로 이해 할 ..