알고리즘 4

거품 정렬(Bubble Sort)

Github : https://github.com/cocodori/study/tree/main/java-algorithm/algorithm01/sort-algorithm/src/main/java/sorting 정렬 알고리즘(Sorting algorithm) 컴퓨터 과학에서 정렬 알고리즘이란 원소를 어떤 기준으로 정렬하는 것을 말한다. 기준은 알파벳, 날짜, 숫자 등 무엇이든 될 수 있다. 탐색이나 병합 알고리즘 같은 경우 정렬된 리스트여야만 바르게 동작한다. 정렬 알고리즘은 다른 알고리즘의 전제 조건이 되므로 반드시 알아두어야 한다. 거품 정렬(Bubble Sort) 거품 정렬은 가까운 두 원소를 비교하여 정렬하는 알고리즘이다. 원소가 자리를 찾아가며 이동하는 모습이 거품이 수면으로 올라오는 듯한 모습을..

알고리즘 2020.12.29

프로그래머스 - 모의고사

모의고사 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution ..

알고리즘 2020.11.26

선택정렬SelectionSort

선택정렬 SelectionSort 전체 코드 package com.algorithm; import java.util.Arrays; public class SelectionSort { /** * 배열 array와 array의 두 인덱스(i, j)를 매개변수로 받아서 * i번 인덱스와 j번 인덱스에 저장된 요소를 바꾸는 메소드 */ public static void swapElements(int[] array, int i, int j) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } /** * 배열 array와 start값을 매개변수로 받는다. * array[]의 start번째 인덱스부터 시작하여 마지막 인덱스까지 반복하면서 * 가장 작은 값이..

알고리즘 2020.10.08

알고리즘

? 상수시간constant time 실행 시간이 입력 크기에 의존하지 않으면 알고리즘은 상수 시간constant time을 따른다고 한다. 이를테면, n개의 배열에서 브래킷 연산([])을 사용하여 요소 중 하나에 접근할 때 이 연산은 배열의 크기와 관계 없이 같은 수의 동작을 한다. ? 선형linear 실행 시간이 입력 크기에 비례하면 알고리즘은 선형linear이라고 한다. 배열에 있는 요소를 더한다면 n개 요소에 접근하여 n-1번 더하기 연산을 해야 한다. 연산 요소(요소 접근과 더하기)의 총 횟수는 2n-1이고 n에 비례한다. ? 이차quadratic 실행시간이 n^2에 빌례하면 알고리즘은 이차quadratic라고 한다. 말하자면 리스트에 있는 어떤 요소가 두 번 이상 나타나는지를 알고 싶다고 하자...

알고리즘 2020.10.08