김찬진의 개발 블로그

Radix Sort, Shell Sort, Tim Sort 를 제외한 정렬을 설명, 코드, 그림으로 정리했습니다. 최대한 이해하기 쉽게 정리했으니깐 참고하실 분은 참고하셔도 좋을 것 같습니다. 1. 버블정렬 (AVG, WORST : O(n^2))바로 옆에 붙은 두 인덱스를 서로 비교오름차순 기준이라면 두 요소를 비교할 때 큰 요소를 뒤로, 작은 요소를 앞으로 배치이렇게 배치하다보면 결국 한 번의 순환이 끝날 때에는 가장 큰 요소가 배열의 끝에 존재하게 됨 (끌고가는 식)다음 순환부터는 요소의 갯수를 1개씩 줄이며 위 과정 반복for(int i = 0 ; i arr[j + 1]) { change = true; int temp = arr[j]; a..
케이스 별로 구조체를 재사용할 것이라면 구조체를 비워주는 과정이 필요하다 이 문제는 구조체를 스택을 쓰든, 큐를 쓰든, 덱을 쓰든 상관은 없는 것 같다. package D1; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class B9012 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int testCase = Integer.parse..
사람들은 원형으로 게임을 진행하기 때문에 사람이 탈락했을 때 탈락한 사람 바로 다음의 사람부터 게임이 그대로 진행되어야 한다. 탈락한 사람을 저장하기 위한 buffer 변수 만약 탈락한 사람부터 게임을 진행했을 때 한 바퀴를 돈다면 이를 계산하기 위해 mod 사용 (=%arrList.size()) arrList.remove(int index) package D1; import java.util.*; public class B12873 { private static int pow3Mod3(int i, int mod) { return ((i%mod) * (i%mod) * (i%mod)) % mod; // a^3%mod = (a*a*a)%mod = (a^2)%mod * a%mod = (a*a)%mod * a%..
peek 과 poll 의 차이 peek 은 구조체에서 제거하지 않고 반환 poll 은 구조체에서 제거한 후 반환 package D1; import java.util.*; // 막대기 public class B17608 { public static void main(String[] args) { Stack stack = new Stack(); Scanner sc = new Scanner(System.in); int testCase = sc.nextInt(); int count = 1; for(int i=0; i popped) { count++; popped = stack.pop(); continue; } stack.pop(); } System.out.println(count); } }