경계조건 Boundary Conditions - Empty data structure - Single element in the data structure - Adding / removing beginning of data structure - Adding / removing end of the data structure - Working in the middle 어떤 자료 구조든 아래의 경계 조건에서 문제가 생기진 않을지 생각해봐야 한다 1. 자료 구조가 비어있는 경우 2. 자료 구조에 단 하나의 요소가 들어있을 때 3. 자료 구조의 첫 번째 요소를 제거하거나 추가할 때 4. 자료 구조의 마지막 요소를 제거하거나 추가할 때 5. 자료 구조의 중간 부분을 처리할 때 출처 : https://www.boos..
분류 전체보기

아래와 같이 소스트리의 커밋 메세지의 한글이 깨질 경우 1. 설정 -> 설정 파일 편집... 클릭 아래의 코드를 추가하여 파일을 수정 [i18n] logOutputEncoding = euc-kr commitEncoding = UTF-8 정상적으로 커밋 메시지 한글 출력
삽입 정렬 삽입 정렬(Bubble Sort) 두 개의 인접한 원소를 비교하여 정렬하는 방식입니다 현재 타겟이 되는 숫자와 이전 위치에 있는 원소들을 비교한다. (첫 번째 타겟은 두 번째 원소부터 시작한다.) 타겟이 되는 숫자가 이전 위치에 있던 원소보다 작다면 위치를 서로 교환한다. 그 다음 타겟을 찾아 위와 같은 방법으로 반복한다. import java.util.Arrays; public class InsertSort { public static void main(String args[]){ int[] array = {1,10,5,8,7,6,4,3,2,9}; insertSort(array); System.out.println(Arrays.toString(array)); } private static v..
버블 정렬 버블 정렬(Bubble Sort) 두 개의 인접한 원소를 비교하여 정렬하는 방식입니다 앞에서부터 현재 원소와 바로 다음의 원소를 비교한다. 현재 원소가 다음 원소보다 크면 원소를 교환한다. 다음 원소로 이동하여 해당 원소와 그 다음원소를 비교한다. import java.util.Arrays; public class BubbleSort { public static void main(String args[]){ int[] array = {1,10,5,8,7,6,4,3,2,9}; bubbleSort(array); System.out.println(Arrays.toString(array)); } private static void bubbleSort(int[] array) { int temp; for..
선택 정렬 선택 정렬(Selection Sort) 알고리즘은 원소가 앞에서부터 정렬되는 알고리즘입니다. 원소들 중에서 최솟값을 찾는다. 맨 앞의 값과 최솟값과 교체(Swap) 한다. 마지막으로 교체(Swap)한 다음 위치부터 위와 같이 진행한다. import java.util.Arrays; public class SelectionSort { public static void main(String args[]){ int[] array = {1,10,5,8,7,6,4,3,2,9}; selectionSort(array); System.out.println(Arrays.toString(array)); } private static void selectionSort(int[] array) { int minInde..

빅 오 표기법 - 알고리즘의 효율성을 표시하는 표시법 - O (빅 오 복잡도) : 비교 대상인 그래프가 일치 혹은 아래에 있을 때. 비교 대상인 다른 알고리즘과 같거나 더 빠르다. ( N >= ) - o (리틀 오 복잡도) : 비교 대상인 그래프가 아래에 있을 때. 비교 대상인 다른 알고리즘보다 더 빠르다. ( N > ) - θ (세타 복잡도) : 비교 대상인 그래프가 일치할 때. 비교 대상인 다른 알고리즘과 같다. ( N = ) - Ω (빅 오메가 복잡도) : 비교 대상인 그래프가 일치 혹은 위에 있을 때. 비교 대상인 다른 알고리즘과 같거나 느리다. ( N O(logn) > O(n) > O(nlogn) > O(n^c) > O(c^n) > O(n!) 참고 ) https://velog.io/@9wonsi..
시간 복잡도 - 서로 다른 알고리즘의 효율성을 비교할 때 사용 규칙 1. 입력 값(n)은 항상 0보다 크다. 규칙 2. 함수는 많은 입력값이 있을 때 더 많은 작업을 한다. 규칙 3. 시간 복잡도에서는 모든 상수를 삭제한다. 시간 복잡도가 3n이라면 복잡도가 n인 알고리즘 이다. 2n,5n,10n 모두 복잡도가 n인 알고리즘이다. 규칙 4. 낮은 차수의 항은 모두 무시한다. 시작 복잡도에서 n과 n² 를 비교할 때 n² 이 항상 더 오래걸리는 알고리즘으로 판단한다.. n³ + n² + n의 시간 복잡도는 n³인 알고리즘이다. 규칙 5. 시간 복잡도 함수가 log를 포함할 경우 밑은 무시한다. 규칙 6. 등호를 사용하여 표현한다 참고 https://www.boostcourse.org/
https://www.acmicpc.net/problem/25083 25083번: 새싹 아래 예제와 같이 새싹을 출력하시오. www.acmicpc.net package InputAndOutput; public class BaekJoon25083 { public static void main(String[] args) { System.out.println(" ,r'\"7"); System.out.println("r`-_ ,' ,/"); System.out.println(" \\. \". L_r'"); System.out.println(" `~\\/"); System.out.println(" |"); System.out.println(" |"); } }
https://www.acmicpc.net/problem/10172
https://www.acmicpc.net/problem/10171 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net package InputAndOutput; public class BaekJoon10171 { public static void main(String args[]) { System.out.println("\\ /\\"); System.out.println(" ) ( ')"); System.out.println("( / )"); System.out.println(" \\(__)|"); } }