본문 바로가기

전체 글

(730)
애자일 vs 워터풀 프로젝트 모델 애자일과 워터풀의 프로젝트 관리 차이는 무엇일까...? 핵심적인 차이만 알아두자, 사실 너무 많은건 더많은 혼선을 가질 수 있다. 1. 애자일 스프린트라고 하는 관리론을 사용한다. 즉, 고객사가 제품을 보고, 그때그때 요구사항을 변화할수 있다. 예를 들면, 실제로 구현을 했는데, 다른 방식으로의 출력을 원한다거나 등등의 요구사항이 변경되면, 해당 내용을 개발하여 다시 전달해준다. 이러한 과정을 스프린트라고한다. 내부테스팅이 끝난후에 고객사에게 오픈하는 워터풀 모델과는 다르다. 추가로, 프로젝트 완료가 아닌, 품질에 초점을 두고 업무를 진행한다. 물론 고객에 수많은 사항을 검토해야 하지만, 변경될 수도 있는 요건 사항에 대해서 좀 더 자유롭다. 2.워터풀 모델 프로젝트 전 모든 요구사항 분석 및 리스크 범..
[브루트 포스] 백준 - 2231 부분합 문제, 각수와 본숫자를 합친 값이문제에서 주어진 값과 같은 것중 가장 작은 값을 출력, 정답들이 여러개 있을수있기때문에 브루트 포스로 돌고, 해당 답들을 answerList에 넣어줘도되고, 그떄마다 비교해서 변경해줘도되고 주의점, 1. 합이 같은경우, 기존 list에서 합쳐서 string으로 만든것을 넣는다. 그다음 파싱으로 체크를 하고 값을 업데이트해준다.
[브루트포스] 백준 - 2798 package com.smith.BruteForce; import java.util.*; public class BOJ2798 { static int N =500; static List answerList = new ArrayList(); static int answer= Integer.MAX_VALUE; static int[] arr = {93,181,245,214,315,36,185,138,216,295}; static boolean[] check = new boolean[10]; public static void main(String[] args) { sol(0); System.out.println(answer); } public static void sol(int num) { if(answerLi..
[브루트포스] 백준 - 1065 워낙 쉬워서 설명은 필요없구 int 숫자를 String으로 변환, charAt으로 비교 체크, 재귀함수 1씩 플러스
선택 정렬 선택 정렬은, 처음부터 제일 작은값을골라서(큰값이될 수도 있다.) 제일 앞으로 보내고, 그다음부터~ 끝까지 제일 작은값을 찾아서, 그 다음으로 보내는 것이다. 이것도 2중 반복으로 해주면되고, min의 인덱스를 찾아서, 현재 바깥의 index와 min을 스왑해주면 된다. 인덱스가 아니라 밸류로 하게되면, 스왑하기도 어렵고, set으로 되었을때는 swap 이 아니라 제일 최소값으로 값이 전체 복붙이 된다. 1.2중 포문으로 min 찾기 2.min index와 현재 탐색 기준 index 값 swap 하기 https://github.com/Realcheese94/Smith_Algorithm
버블 정렬 버블 정렬은 앞에서 부터 1번째와 두번째 두개를 비교해서, 특정 조건에 맞춰서 자리를 바꿔주는 것이다. 이중 for문을 돌려서, 체크를 하고, 두번째 반복문에서는, 제일 마지막에쌓인 데이터는 다시 처리하지 않는다.(처리해도 무방하긴 하다, 다만 낭비가 심하니까, 해당 작업은 하지않는다.) 특수하게 짜는 경우는 내부 반복분에 boolean flag를 두어서, 한번돌았을때, 정렬을 한번 도 하지 않는 경우 즉 swap 이 일어나지 않는 경우는 그냥 끝낸다. 왜냐면, 낭비를 줄이기 위해서....그렇게 하기 이해서는 flag를 내부 반복문 안으로 넣는다. 1. 이중 반복문 (내부 반복문 도는 횟수 max값 -1 씩 감소) 2. 자리바꿈시 flag true , 아니면 break 3. 두개 바꿔야 하면 collec..
알고리즘 공부 [힙] 힙에 대한 알고리즘 공부를 해보자. 힙은 heap이라고 해서, 다른 의미로 생각할 수 있지만, 쉽게 말하면 단순히 완전 이진 탐색 트리이다. 완전 이진 트리라고 생각하면 된다. 특징으로는 아래와 같다. - 하위의 자식 노드는 무조건 2개가 있다. - 왼쪽이 작거나 오른쪽이 크거나 할 것없이, 단순히 부모가 자식보다 큰게 다이다. - 0의 index는 비워두고 1부터 계산한다. 해당 이유는, 부모는 자식노드 /2 , 오른쪽 은 /2+1 이런식으로 간단하게 구하기 위해서이다. - 최대힙, 최소힙이 존재하여, 데이터를 탐색하는용도 보다 최대값 최소값을 빠르게 찾기 위해서 사용한다. 우선 힙과, 힙에 데이터를 넣는 메소드를 재구현 해보자 데이터를 넣을때, 항상 넣은 데이터와 부모의 데이터를 비교해서, 두개의 s..
알고리즘 공부 [Tree] 트리는 제약 조건이 하나만 있는 간단한 구조이다. 1. 싸이클의 형태를 띄우지 않는다. 이진트리(Binary Search Tree)는 해당 제약 조건에서 2개의 제약 조건이 더 붙는다. 1. 노드의 브랜치는 2개로 제약된다. 2. 노드의 왼쪽은 자신보다 작은 값, 오른쪽은 큰 값을 가지고있는다. import java.util.*; public class Main { public static void main(String[] args) { NodeMgmt mgmt = new NodeMgmt(); mgmt.insertValue(14); mgmt.insertValue(12); mgmt.insertValue(13); mgmt.insertValue(16); mgmt.showAllNodes(mgmt.head); }..