분류 전체보기 (644) 썸네일형 리스트형 Do it! 알고리즘 코딩테스트 with JAVA - (11) 병합 정렬 병합 정렬 - 분할 정복 방식을 사용해 데이터를 분할하고 분할한 집합을 정렬하며 합치는 알고리즘 - 시간 복잡도는 O(nlogn)이다. 병합 정렬 과정 최초에 가장 작은 그룹으로 나눈다. 2개씩 그룹을 합치며 오름차순 정렬한다. 다시 2개씩 그룹을 합치며 정렬한다. 위의 과정을 거치면 그룹 전체의 오름차순 정렬이 완료된다. 2개의 그룹을 병합하는 과정 - 투 포인터 개념을 사용하여 왼족, 오른쪽 그룹을 병합한다. 왼쪽 포인터와 오른쪽 포인터의 값을 비교하여 작은 값을 결과 배열에 추가하고 포인터를 오른쪽으로 1칸 이동시킨다. 문제 풀이 https://yurison.tistory.com/344 [백준/자바] 2751 - 수 정렬하기 2 import java.io.*; import java.util.Arra.. [백준/자바] 1517 - 버블 소트 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int[] arr, temp; public static long result; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); arr = new int[N + .. [백준/자바] 11004 - K번째 수 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int K = Integer.pa.. [프로그래머스/자바] 수박수박수박수박수박수? class Solution { public String solution(int n) { StringBuilder sb = new StringBuilder(); for (int i=0; i [프로그래머스/자바] 문자열 다루기 기본 풀이1) class Solution { public boolean solution(String s) { if (s.length() != 4 && s.length() != 6) return false; char[] arr = s.toCharArray(); for (char c : arr) { if ((c - '0') > 9) return false; } return true; } } 문자열 s의 길이가 4 혹은 6이라는 제한 조건을 못 봐서 한 번 실패했었다...ㅎㅎ 지문을 한 글자 한 글자 제대로 읽는 습관을 들여야겠다. 풀이2) class Solution { public boolean solution(String s) { if (s.length() != 4 && s.length() != 6) retur.. [프로그래머스/자바] 가운데 글자 가져오기 class Solution { public String solution(String s) { return s.length() % 2 == 0 ? s.substring(s.length() / 2 - 1, s.length() / 2 + 1) : s.substring(s.length() / 2, s.length() / 2 + 1); } } [프로그래머스/자바] 정수 제곱근 판별 class Solution { public long solution(long n) { double sqrt = Math.sqrt(n); if ((int)sqrt == sqrt) { long num = (long)(sqrt + 1); return num * num; } else return -1; } } 참고용 다른 분 풀이 class Solution { public long solution(long n) { double i = Math.sqrt(n); return Math.floor(i) == i ? (long) Math.pow(i + 1, 2) : -1; } } [프로그래머스/자바] 제일 작은 수 제거하기 class Solution { public int[] solution(int[] arr) { if (arr.length == 1) return new int[] {-1}; else { int minimum = Integer.MAX_VALUE; for (int num : arr) { if (minimum > num) minimum = num; } int index = 0; int[] answer = new int[arr.length - 1]; for (int num : arr) { if (num != minimum) { answer[index++] = num; } } return answer; } } } 이전 1 ··· 11 12 13 14 15 16 17 ··· 81 다음