목록
반응형
분류 전체보기 (80)
반응형
7JeY world
애자일 방법론 애자일 방법론은 하나의 개발 모델이 아니라 여러개의 개발 방법론이 있는 집합체 혹은 규약에 가깝다. 폭포수 모형 개발론 방식의 한계를 극복하기 위해 나타난 방법으로, 개발과 함께 즉시 피드백을 받아 유동적으로 개발하는 방법론을 말한다. 칸반(Kanban), TDD(Test-driven development), BDD(Behavior-driven development), 스크럼 등이 있다. TDD(Test-driven development) :테스트 주도 개발 구현코드를 작성하기 전 테스트 코드를 작성한다. +) 코드의 확장성 및 유지보수가 용이해진다. (자연스러운 모듈화) -) 숙련되기까지 시간이 소요되며 선행 투자가 많이 필요하다. BDD(Behavior-driven development..
이중 연결 리스트를 이용한 덱(Deque) 덱은 양쪽 끝에서 삽입/삭제 연산이 가능해야 하기 때문에 다음과 같이 왼쪽 링크 필드와 오른쪽 링크 필드를 가지는 노드를 사용하는 이중 연결 리스트를 이용하여 구현한다. class DQNode{ char data; DQNode rlink; DQNode llink; } class DQueue{ DQNode front; DQNode rear; public DQueue() { front = null; rear = null; } public boolean isEmpty() { return (front == null); } public void insertFront(char item) { DQNode newNode = new DQNode(); newNode.data = ..
Stack (1) 연결 자료구조 방식을 이용한 스택의 구현 스택의 초기상태(공백스택)는 참조변수 top을 null로 설정하여 표현 연결 자료구조 방식을 이용하여 스택을 구현하면 스택의 원소는 연결리스트의 노드가 된다. 스택에 원소를 삽입할 때 마다 연결 리스트에 노드를 하나씩 할당한다. 스택 원소의 순서는 연결 리스트 노드의 링크를 사용하여 표현하고, 스택의 top은 참조변수 top을 사용한다. 중위 표기 수식을 후위 표기 수식으로 변환하는 연산을 수행하는 프로그램을 구현 interface Stack { boolean isEmpty(); void push(char item); char pop(); void delete(); char peek(); } class StackNode { char data; S..
[boj 12851번] 숨바꼭질2 현재 index까지 올 수 있는 방법이 몇개있는지 담는 cnt[index]배열이 필요하다. check[index] = true 임에도 next위치에 가는 경로가 최단이면 cnt를 늘려주어야 한다. 아직 방문하지 않은 상태 이미 방문 했더라도 이동거리가 같은 경우 dist[next] = dist[now] +1 이라면 queue에 넣어주면 된다. public class Main { static boolean check[] = new boolean[100001]; static int cnt[] = new int[100001]; static int dist[] = new int[100001]; static int N, K; public static void bfs(int N, ..
[boj 1697번] 숨바꼭질 N : 수빈이의 위치 K : 동생의 위치 X+1 or X-1 : 걷기 X*2 : 순간이동 동생을 찾을 수 있는 가장 빠른 시간을 구하는 문제 public class Main { static int N, K; static int check[] = new int[100001]; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken());..
[boj 1987번] 알파벳 문제 :: https://www.acmicpc.net/submit/1987/18450536 r행 c열의 표 모양의 보드가 있다. 좌측 최 상단(1,1 or 0,0)에서 시작해 말이 최대한 몇 칸을 이동 할 수 있는지 구하는 문제. int board[][] : 입력 되는 보드 boolean check[] : 방문한 알파벳 x, y : 현재 위치 ans : 최대 방문 가능한(이동 가능한) 칸의 수 go(board, check, nx, ny, max+1) public class Main { public static final int[] dx = {0, 0, 1, -1}; public static final int[] dy = {1, -1, 0, 0}; static int ans, ..
N-Queen Queen은 같은 행, 같은 열, 대각선 양쪽 모두 공격이 가능하다. 즉, 한 행에 Queen 은 하나만 둘 수 있고, 열, 대각선 양쪽 모두 마찬가지라고 할 수 있다. calc(row) : row 행에 Queen 놓는 함수 0 ~ n-1 의 행이 존재한다. 사이에 Queen을 놓았으면 올바르다고 가정한다. (row, col)로 col은 row행 어디에 Queen을 놓을지 정하는 부분이다. check() : Queen을 (row, col)에 놓고 행, 열, 양쪽 대각선을 탐색해서 Queen의 존재 여부 체크하는 함수 시간 복잡도가 각각의 Queen을 놓을때마다 검사하기에, N^N이 된다. (대각선을 검사하지 않았을 경우) 중복 검사를 할 필요가 없도록 대각선을 체크하주는 배열을 추가적으로 ..
스택, 큐, 덱(Stack, Queue, Deque)의 특징 스택(stack) : 자료의 입력과 출력을 한 곳(방향)으로 제한한 자료구조 LIFO(Last In First Out)구조 push(), pop() 함수의 콜스택에 쓰이고 문자열을 역순으로 출력할 때, 연산자 후위표기법등에 쓰인다. 큐(queue) : 자료의 입력과 출력을 한 쪽 끝(front, rear)으로 제한한 자료구조 FIFO(First In First Out)구조 put(), get() 컴퓨터 버퍼에서 주로 사용 마구 입력이 되었으나 처리를 하지 못할 때, 버퍼(큐)를 만들어 대기 시킨다. 일반적인큐(빈메모리가 남아있어도 꽉 차있는것으로 판단 가능) > 원형큐(큐의 크기가 제한됨) > 링크드리스트큐(제한이 없고 삽입, 삭제가 간편) 덱..