Algorithm 5

[Algorithm] 자료구조_정렬(Sorting)

오늘은 정렬에 대해서 공부하고자 한다. 정렬이란 데이터의 집합을 일정한 순서로 나열하는 집합을 의미한다. 즉 알고리즘을 이용해 데이터를 정렬하게 되면 검색을 쉽게 할 수 있다. 정렬 알고리즘의 핵심 요소는 교환, 삽입, 선택이다. 대부분의 정렬 알고리즘은 이 3가지 요소들을 응용한 것이다. 대표적인 정렬 알고리즘은 크게 8종류가 있는데 아래와 같다. 1. 버블 정렬 : 이웃한 두 요소의 대소 관계를 비교하고 필요에 따라서 교환을 하는 알고리즘으로 단순교환정렬이라고도 한다. 2. 단순선택정렬 : 가장 작은 요소를 맨앞으로 이동하고, 두번째 작은 요소는 맨앞에서 두번째로 이동하는 등의 작업을 반복하는 것이다. 3. 단순삽입정렬 : 선택한 요소를 그보다 더 앞쪽의 알맞은 위치에 "삽입하는" 작업을 방법하여 정..

[4일차] 백준_2875

오늘은 대회 or 인턴 문제이다. 나는 while을 사용해서 간단하게 코드를 짰다. 코드를 해결 하기 위해서 나는 우선 k값에 집중을 했다. 나의 알고리즘은 다음과 같다. 1. k값은 그대로 두고 m값과 w값을 줄이기 => 이를 위해서 나는 while문 사용 했다. 2. 팀을 구성하기 위해서는 여자는 최소 2명 이상이여야 하고 남자는 3명 이상, 전체학생수는 3+ k(반드시 인턴십 가는 학생의 수)이상이여야 함의 조건을 적용하기 3. m값과 w값 빼주고 그리고 결성된 team 값은 더해주기 이러한 알고리즘 대로 작성된 코드는 아래와 같다. - JAVA import java.util.Scanner; public class Main { public static void main(String[] args) {..

[3일차] 백준_17608

3일차 알고리즘은 배열과 count 를 활용한 알고리즘 문제이다. 어제 배열로 문제를 결국 해결하지 못해 오늘은 배열로 문제를 해결하자고 다짐하면 문제를 골랐다. 주어진 문제의 내용을 이해하기는 쉬웠다. 문제의 예시에서 처럼 오른쪽에 크기 6의 막대가 놓여져 있다면 6보다 큰 막대만 보이게 된다. 따라서 문제에서는 보이는 막대를 구하라는 의미는 6보다 큰 막대기를 구하라는 말이다. 어떻게 보면 최대값을 찾는 문제인데, 이 문제를 풀기가 어려웠다. 그 이유는 최대값을 구하는 문제와 달리 이 문제를 풀기 위해서는 바로 i++ (->) 이 아니라 i-- (max) {// 뽑힌 i가 max보다 크다면 max = arr[i];// max는 뽑힌 i count++; //max보다 큰수를 뽑기 } } System.o..

[2일차] 백준 15953

알고리즘 2일차 오늘의 문제는 상금헌터이다. 문제가 길어 보이지만 난의도는 브로즈 문제이다. 문제는 다음과 같다. 원래 보통은 배열로 풀어야 코드가 간단하도 빠르게 풀린다고 한다. 하지만 아직 배열을 배우지 않아서 내가 풀수 있는 방식으로 문제를 해결했다. 내가 생각한 방법은 IF문과 반복문 활용이다. 연도별로 나의 등수를 가정하고 상금을 합하는 방식으로 문제를 해결했다. 내가 생각하는 코드는 아래와 같다. - JAVA import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); for( int i =0; ..

[1일차] 백준_2739

비전공자로서 처음 JAVA를 설치하고 배운날 처음하는 알고리즘이다. 사실 어려운 문제는 아직 할 줄 몰라서 백준의 구구단을 자바로 풀는 작업을 첫날 해보았다. JAVA는 JDK11버전이며, Esclipe를 사용했다. 또한 백준 문제를 풀기위해서는 클래스 명을 "Main"으로 설정해야만 한다!! 1일차는 가볍게 구구단 푸는 문제부터 시작했다. 문제는 아래와 같다. 처음에는 배운 자바는 자바스크립트와 많이 달라 용어를 익히는 데 어려움을 겪었다. - JAVA import java.util.Scanner; //Scanner 클래스 호출 public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); /..