전체 글(186)
-
EC.CREW 4기 2회차
허허 이번 학기도 EC.CREW랑 함께... 1주차에는 간단하게 OT를 들었구 ( 갈수록 OT가 화려해진다 므찌다..!! ) 2주차 때는 앞으로 활동 계획을 스터디원들이랑 세웠다! 3주차부터는 예전처럼 문제를 들고와서 푸는 걸 했는데 1~3기와 다른 점은 JAVA를 시작했다는 것... 다시 초심으로 돌아와서 브론즈 문제를 꼼지락거리며 풀어봤다 # 1 합 - 백준 8393번 https://www.acmicpc.net/problem/8393 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net import java.util.Scanner; class Main { public static void main(String[] args) { Scanner..
2023.03.27 -
[ 기수 정렬 ] 알고리즘
1. 개념 기수 정렬 : 기수 정렬은 숫자의 특정 자릿수만 비교하는 정렬인데 일의 자릿수부터 차례대로 하나씩 비교한다 * 시간 복잡도 : O(kn) 기수 정렬 방법 1 ) 0 ~ 9를 상징하는 10개의 큐를 사용한다 2 ) 데이터를 특정 자릿수의 숫자를 기준으로 큐에 넣는다 3 ) 일의 자릿수부터 마지막 자릿수까지 차례대로 반복하면 된다 2. 문제 풀이 # 1 수 정렬하기 - 백준 10989번 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net from collect..
2023.03.19 -
[ 병합 정렬 ] 알고리즘
1. 개념 병합 정렬 : 분할되어 있는 데이터 배열을 하나로 합치면서 정렬하는 것 * 시간 복잡도 : O(nlogn) 병합 정렬 방법 - 1 ) 데이터 배열을 분할하고 2 ) 다시 병합하면서 정렬하는 것 - 초기 설정 데이터를 하나씩 분할해준다 - 재귀함수 이용 각각의 데이터 배열 요소의 개수 한 개가 될 때까지 데이터 배열을 반으로 쪼개준다 재귀함수의 종료 조건 : 데이터 배열의 요소의 개수가 한 개가 될 때 - 병합 정렬 과정 : 근접한 데이터와 병합하면서 정렬해준다 재귀함수가 종료 조건을 만족한 후, 재귀함수 호출 코드 뒤에 있던 배열 병합 코드가 수행된다 근접한 데이터 배열과 병합해준다 ( 1 ) 각 데이터 배열의 첫번째 데이터를 포인터로 가르킨다 ( 2 ) 포인터로 지정된 데이터끼리 비교해준다 ..
2023.03.19 -
[ 퀵 정렬 ] 알고리즘
1. 개념 퀵 정렬 : 나열된 데이터 내에서 기준값을 지정하여 각각의 데이터를 기준값보다 큰 데이터, 작은 데이터로 분류하는 것을 반복하는 정렬 * 시간 복잡도 : O(n²) 퀵 정렬 방법 - 나열된 데이터 내에서 pivot(기준값)을 정한다 - pivot을 제외한 데이터 배열의 시작과 끝을 각각 start, end 로 정한다 아래의 과정을 start와 end가 만날 때까지 반복한다. 1 ) start pivot. : pivot보다 큰 값이 제시될 때까지 end를 왼쪽으로 한 칸씩 옮긴다 3 ) start > end 가 되면(start값과 end 값이 엇갈리면) start와 end를 swap..
2023.03.18 -
[ 삽입 정렬 ] 알고리즘
1. 개념 삽입 정렬 : 이미 정렬된 범위에 정렬되지 않은 데이터를 알맞은 위치에 끼어넣는 정렬 * 시간 복잡도 : O(n²) 삽입 정렬 방법 1) 두번째 인덱스에서 출발한다 2) 현재 선택한 데이터 앞부분은 이미 정렬된 범위이며 정렬된 범위 내에 선택한 데이터를 알맞은 위치에 넣는다 3) 반복 삽입 정렬이 버블 정렬, 선택 정렬과 다른 점 - 버블 정렬, 선택 정렬 : 첫 번째 인덱스부터 시작 / 삽입 정렬 : 두 번째 인덱스부터 시작 - 버블 정렬, 선택 정렬 : 정렬된 범위 방치 / 삽입 정렬 : 정렬된 범위 계속 이용 2. 문제 풀이 # 1 ATM 인출 시간 계산하기 - 백준 11399번 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수..
2023.03.18 -
[ 선택 정렬 ] 알고리즘
1. 개념 선택 정렬 : 나열된 데이터에서 최솟값 혹은 최댓값을 찾아 루프 범위 가장 앞에 있는 데이터와 swap 하는 정렬 * 시간 복잡도 : O(n²) 선택 정렬 방법(오름차순 기준) 1) 루프 범위에서 최솟값을 찾는다 2) 루프 범위에서 가장 앞에 있는 데이터와 최솟값 데이터를 swap해준다 - 최솟값이 제자리를 찾음 3) 제자리를 찾은 데이터를 제외하여 루프 범위를 재정비한다 4) 반복 2. 문제 풀이 # 1 내림차순으로 자릿수 정렬하기 - 백준 1427번 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net # 입력 strin..
2023.03.18