전체 글
[백준2583&파이썬] 좌표평면을 배열로 표현하는 방법
# 문제 백준2583 영역구하기 파이썬 풀이 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net # 코드 import sys from collections import deque M,N,K = map(int, sys.stdin.readline().split()) # M 행 , N 열 board = [ [False] * N for i in range(M)] def printBoard() : for i in range(M) : print(board[i]) dirs = [ (-1,0),(0,1),(..
[Object Oriented S/E] Chapter 4 - Software Requirements Elicitation
# 범위 80page ~ 103page # 내용 ## 4.1 WHAT IS REQUIREMENTS ELICITATION? 실제 세계의 프로젝트에서는 예산이나 시간의 제한이 존재한다. 그렇기 때문에 요구사항의 subset만이 충족되어 진다. 소프트웨어 요구사항은 시스템이 제공해야 하는 기능이다. 성공적인 소프트웨어 프로젝트는 예산을 넘기지 않고 계획된대로 시스템을 완성시키는 것이다. 이해관계자들의 성향(경영가, 개발자, 기술자 ...)에 따라서 우선순위로 두는 것이 달라지기 때문에 요구사항의 우선순위를 두는것이 어렵다. 제약조건은 소프트웨어 솔루션 공간에 대한 제약이다. 제약은 설계와 구현대안들을 감소시킨다. 극단적인 예로, 제약조건이 없다면 선택범위가 매우 광범위 하지만 제약족건이 존재하면 솔루션 공간이..
[백준7562&파이썬] BFS를 활용하여 최단거리에 도달하는 방법
# 문제 백준 7562 나이트의 이동 파이썬 풀이 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net # 코드 import sys from collections import deque tc = int(sys.stdin.readline()) dirs = [ (-2,1), (-1,2),(1,2),(2,1),(2,-1),(1,-2),(-1,-2),(-2,-1) ] def solve() : l = int(sys.stdin.readline()) # 체스판의 한변의 길이 l * l visit = [ [False] * l fo..
[백준4179&파이썬] 불!/BFS를 이용해 조건에 맞는 최단거리를 구하는 방법
# 문제 백준 4179 불! 파이썬 풀이 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net # 코드 import sys from collections import deque R,C = map(int, sys.stdin.readline().split()) board = list() visit = [ [False for j in range(C) ] for i in range(R) ] j_flag = True f_starting = list() j_pos = [-1,-1] for i in range(..
[백준1926&파이썬] BFS를 활용하여, 연결된 노드의 너비를 세는 방법
# 문제 백준 1926번 그림, 파이썬 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net # 코드 import sys from collections import deque n,m = map(int,sys.stdin.readline().split()) # n 세로크기 , m 가로크기 board = list() visit = [[ False for j in range(m) ] for i in range(n)] for i in range(n) : row = list(map(int,sys.stdin.readline().sp..