전체 글

초보 개발자의 지식 공유의 장
버블정렬(Bubble Sort)버블정렬은 인접한 두개의 원소를 비교하여 가장 큰 원소가 마지막자리로 오게해서 숫자를 정렬하는 방법입니다.원소를 두개씩 교환하면서 마지막원소까지 오는 모습이 거품이 물에서 올라오는 것과 비슷하다. 라고 생각하여 버블정렬이라는 이름을 갖게되었답니다..시간복잡도는 선택정렬과 같이 O(n^2)입니다.비교횟수가 선택정렬과 똑같기 때문입니다.1단계 => n 2단계 => n-1...n + (n-1) + (n-2) + ....12345678910111213141516171819202122// 버블정렬public void bubbleSort(int[] array) { int size = array.length; for(int i=0; i O(n) 의 시간복잡도를 갖게됩니다.최악의 경우에는..
선택정렬(Selection Sort)선택정렬은 배열중에 가장 작은 원소들을 왼쪽부터 채워나가면서 숫자를 정렬하는 방법입니다.최소원소를 찾은 후 => 최소원소를 맨 왼쪽원소와 교환(즉, 왼쪽부터 정렬된 원소로 채워집니다.)=> 왼쪽원소를 제외하고 원소가 하나남을때 까지 이단계를 반복(그림 참고) 선택정렬의 비교횟수를 구해보면1단계 => n개의 원소 비교2단계 => n-1 개의 원소 비교3단계 => n-2 개의 원소 비교....를 하여 비교 횟수는n(n-1) /2 가 됩니다.즉, 시간복잡도는 O(n^2)이 됩니다. // 선택정렬 public void selectionSort(int[] array) { int size = array.length; int i, j, min; for(i = 0; i < size-..
참고 : [JAVA] 피보나치 수열 코딩 #2 피보나치 배열은 0과 1로 시작하며, 다음 피보나치 수는 바로 앞의 두 피보나치 수의 합이 된다. 정수 N이 주어지면, N보다 작은 모든 짝수 피보나치 수의 합을 구하여라. 예제) Input: N = 12 Output: 10 // 0, 1, 2, 3, 5, 8 중 짝수인 2 + 8 = 10. public static int solution(int num) { // 피보나치 수열 ( 1+1+2+3+5+8+13 ...) int last1 = 1, last2 = 1, next = 0, sum = 0; next = last1 + last2; while(next < num) { if(next % 2 == 0) { sum += next; } last1 = last2; ..
피보나치 수열이란? 처음 두 항을 1과 1로 한 후, 그 다음 항부터는 바로 앞의 두개의 항을 더해 만드는 수열을 의미합니다. 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 ..... 그.. 유명한 피보나치 수열을 2가지 방식으로 구현 합니다. 1. 재귀함수를 활용 => 재귀를 이용한 피보나치는 코드는 읽기 쉬우며, 구현도 그다지 어렵지 않습니다. 하지만 성능상의 문제가 있다는거~ public int Fibonacci(int n) { // 재귀함수 활용 if(n 동적프로그래밍 : 중간중간 계산된것을 재활용하는 기법입니다. 재귀를 이용한 코딩방식보다 보기가 어려우나 성능이 빠르다는 장점이 있습니다. public static int dynamicFibonacci(int n) { // 동적..
매일프로그래밍을 구독하게 되었습니다. (https://mailprogramming.com/) 매주 월요일날 간단한 코딩문제가 메일로 전송됩니다. 아직까진 무료이나.. 조만간 유료로 전환된다고 하네요..? 항상 연습해야지 공부해야지 하고 중간에 포기를 많이했었는데, 일주일에 한번와서 고민도 해보고 코딩연습도 하고 좋은 것 같네요 ㅎㅎ #1 정수 배열(int array)가 주어지면 가장 큰 이어지는 원소들의 합을 구하시오. 단, 시간복잡도는 O(n). 예제} Input: [-1, 3, -1, 5] Output: 7 // 3 + (-1) + 5 Input: [-5, -3, -1] Output: -1 // -1 Input: [2, 4, -2, -3, 8] Output: 9 // 2 + 4 + (-2) + (-3..
Spring framework Annotation 개념 XML : 분리- 결합도를 낮추고 유지보수성을 높이기 위해 xml로 설정하였으나 xml이 너무 많아지면 오히려 유지보수성이 낮아지는 아이러니한 상황 발생- 유지보수성에 방점- 시스템 전체에 영향을 주고 이후에 변경 가능성이 있는 것은 xml로 설정.https://medium.com/@2xel/spring-framework-annotation-%EA%B0%9C%EB%85%90-c26c15716538 @Component 태그를 추가하면 어노테이션이 적용된 클래스를 빈으로 등록하게된다. 태그는 어노테이션과 관련해서 BeanPostProcessor를 함께 등록한다.@Required(RequiredAnnotationPostProcessor)@Autowired..
처음 자바를 공부할 때 어떤 것을 받아야할지 고민했던 기억이 난다. 예전에 웹을 처음배울 때 Java SE를 받아서 이클립스에서 나만 서버를 만들 수 없었던 상황이 있던적도 있었다..^^;;JAVA SE (Java Platform Standard Edition)데스크톱, 서버, 임베디드시스템을 위한 표준 자바 플랫폼. 자바 가상머신 규격 및 API집합을 포함 JAVA EE,ME는 목적에 따라 SE를 기반으로 기존의 일부를 택하거나 API를 추가하여 구성된다. SE는 가장 일반적으로 사용된다. JDBC나 기본적인 기능이 모두 포함되어 있기 때문에 Android개발할때 주로 SE를 사용한다.JAVA EE (Java Platform EnterPrise Edition)자바를 이용한 서버측 개발을 위한 플랫폼. ..
단순 시제 (현재/과거/미래) - 현재 시제는 일반적인 사실이나 일상적으로 반복되는 동작을 나타낸다. Sunghyun does his weekly shopping every Saturday. - 과거 시제는 과거에 이미 끝난 동작이나 상태를 나타낸다. He watched the TV. He delivered the catalogs to the wrong office. - 미래 시제는 미래 상황에 대한 예상이나 말하는 사람의 의지를 나타낸다. He will contact her once the payment is recevied. 진행 시제(현재 진행/과거 진행/미래 진행) 완료 시제(현재 완료/과거 완료/미래 완료) - 현재완료는 과거에 시작된 일이 현재 시점까지 계속되거나, 과거에 일어난 일이 현재까지..
개발을 할때 자기만의 주석을 사용하고 싶을때나 형식에 맞는 주석들을 반복적으로 사용해야할 때가 있습니다. 이러한 갈증을 해결해주기 위해 친절하게도 이클립스에서는 code Template이란 기능을 제공을 합니다.Template을 지정해두고 메소드나 클래스에 주석을 달게되면 설정한 Template에 맞게 주석이 생성이 되는 것이죠.. 먼저, 이클립스에서 [Windows > Preferences > Java > Code Style > Code Templates]를 선택하시고 우측에 comments를 펼치게되면 다음과 같은 화면을 볼 수 있습니다.(맥북사용하시는 분들은 command + , 를 눌러 이클립스 환경설정 창을 여시면됩니다.) 1. Class에 주석 넣기Comments 항목에서 Types을 선택 후..
영광스러운 블로그 첫글입니다.운이 좋게 페이스북 '생활코딩' 페이지에서 티스토리 초대장을 받게되어서 첫글을 적게 되었어요~블로그도 처음이고, 시간이 있을지 잘 모르겠지만 열심히 한번 해보려합니다. 화이팅!!
깡냉쓰
평범한 개발자 노트