본문 바로가기

정렬10

[TIL] Java (정렬) [TIL] Java (정렬) Arrays.sort(배열) 배열을 오름차순으로 정렬을 해준다 배열이 문자열로 이루어져 있으면, 숫자 => 대문자 => 소문자 => 한글순 으로 정렬이 된다 import java.util.*; public class Main { public static void main(String[] args) { String[] string = {"C", "A", "a", "B", "b", "7", "제", "준", "기", "5", "9", "1"}; Integer[] num = {3, 4, 8, 1, 2, 3}; Arrays.sort(string); Arrays.sort(num); System.out.println("=== 오름차순 정렬 ==="); System.out.println(.. 2023. 6. 28.
Udemy - Javascript - Radix Sort Udemy - Javascript - Radix Sort 정렬이란? 데이터가 있으면, 데이터를 숫자 또는 단어별로 오름차순 또는 내림차순으로 나열하는 것이다 정렬을 하는 방법은 다양하다. 정렬하는 방법마다, 정렬을 하는 시간은 다르다 버블, 선택, 삽입 정렬들은 숫자가 계속 늘어날 수록, 속도가 느려진다 반대로 합병 정렬, 퀵 정렬, 지수 정렬은 위의 3개보다 더 빠르다 기수 정렬 버블, 선택, 삽입, 합병, 퀵 정렬들은 모두 숫자들끼리 비교를 하면서, 정렬을 하는 것이다 정수만 정렬이 가는하다 자릿수가 더 많은 숫자가, 더 크다 라는 로직을 사용해서 정렬을 한다 4자리 수는 두 자리 수보다 크다 1 2 - 1의 자리 숫자들은 앞에 숫자가 없음으로 0에다가 넣으면 된다 3 - 0을 보면, 0에 들어오는 .. 2023. 2. 4.
Udemy - Javascript - 정렬 Udemy - Javascript - 정렬 정렬이란? 데이터가 있으면, 데이터를 숫자 또는 단어별로 오름차순 또는 내림차순으로 나열하는 것이다 정렬을 하는 방법은 다양하다. 정렬하는 방법마다, 정렬을 하는 시간은 다르다 자바스크립트 기본 내장 정렬 .sort()는 기본적으로 string 기준으로 정렬을 한다 function numberCompare(num1, num2) { return num1 - num2; } array.sort(numberCompare) num1 - num2를 해서 값이 음수가 나오면 num1은 num2보다 앞에 와야 한다 (더 숫자가 작다는 것) 양수가 나오면 num1은 num2 보다 커서 뒤에 나와야 한다 num2 - num1 을 하게 되면 내림차순으로 계산이 된다 버블 정렬 연속.. 2023. 1. 23.
[Python] 백준 1715 - 카드 정렬하기 🧑‍💻 [Python] 백준 1715 - 카드 정렬하기 Gold 4 - 그리디, 힙 heappop을 2번씩 해서, 나온 숫자들을 더해준다 더해준 숫자들을 다시 heap에 넣어준다 이것을 heap에 숫자가 2개 미만일 때까지 반복해서 해준다 문제풀이 힙에서 2개의 숫자를 pop으로 뽑아와서, 더해주는 것이다 제일 낮은 숫자끼리 더하면, 최소 숫자를 만들 수 있다 코드 import heapq N = int(input()) heap = [] for n in range(N): heapq.heappush(heap, int(input())) answer = 0 while True: if len(heap) 2023. 1. 18.
[Python] 백준 13904 - 과제 🧑‍💻 [Python] 백준 13904 - 과제 Gold 5 - 정렬 과제 마감일과, 과제 점수가 주어진다 하루에 한 과제를 끝낼 수 있다 즉 과제 점수 기준으로 내림차순으로 해서, 최대한 많은 점수를 얻으려고 한다 문제풀이 과제 관련 정보를 입력 받는다 그리고 일수가 있는 리스트를 만든다 이 리스트는, 어느 날에 과제를 완료했는지 확인하는 리스트다 즉 False가 있고, True로 그 날 과제를 완료했다고 표시한다 그리고 과제들을 과제 점수가 높은 과제 기준으로 내림차순으로 정렬을 한다 for문을 사용하여 과제들을 순회한다 여기서 과제를 끝내야 하는 날이 제일 기준 index가 된다 만약에 과제를 끝내야 하는 날이 False일 경우, True로 바꿔주고 answer에 과제 점수를 누적시켜준다 과제를 끝.. 2023. 1. 15.
[Python] 백준 1931 - 회의실 배정 🧑‍💻 백준 1931 - 회의실 배정 Silver 1 - 정렬 회의실 한 개가 있다 입력값으로 회의 시작 시간과, 회의 끝나는 시간이 주어진다 시작 시간과, 끝나는 시간은 같을 수 있지만, 회의끼리 겹치면 안 된다 즉 시작하는 시간 순으로 먼저 정렬을 한 후, 또 한번 회의가 끝나는 순서로 정렬을 하면 된다 제일 중요한 것은 회의가 일찍 끝날수록, 더 많은 회의를 회의실에서 할 수 있다 문제 풀이 회의가 시작하는 시간 기준으로 정렬을 한다 그리고 회의가 끝나는 시간 기준으로 정렬을 한다 결과적으로 회의가 끝나는 시간 기준으로 정렬이 되어 있다 정렬된 회의 중 첫 회의는 무조건 진행을 한다 for문을 돌면서 전 회의의 끝나는 시간과 현재 회의의 시작 시간이 같거나 더 클 때에, meeting_now 를 갱.. 2023. 1. 13.
[Python] 백준 2437 저울 🧑‍💻 백준 2437 저울 Gold 2 주어진 저울 추의 무게들을 오름차순으로 정렬을 한다 그 저울 추들을 가지고 1부터 몇 번까지 무게를 측정할 수 있는지 구하는 것이다 예를 들어 주어진 저울 추들로 1부터 20까지 무게를 측정할 수 있다. 그러면 답은 21이다. (21부터는 무게를 측정하기 어려우니깐) 문제 풀이 먼저 주어진 리스트를 오름차순으로 정렬을 한다 target을 주어야 하는데, target은 1부터 시작한다. 위에 예시처럼 1부터 20까지 무게를 측정할 수 있지만, 21부터는 측정하기 어려우니 20 + 1을 해야 해서 target을 1로 저장을 한다 그리고 weight리스트를 순회를 한다 여기서 target보다 순회하는 저울추가 더 크면 for문을 끝낸다 target보다 순회하는 저울추가 .. 2023. 1. 11.
[Python] 백준 11497 - 통나무 건너뛰기 🧑‍💻 백준 11497 - 통나무 건너뛰기 Silver 1 - 정렬 인접한 통나무 높이의 차를 최소화 하는 문제다 여기서 제일 중요한 것은 통나무를 원형으로 세워 놓는 것이라서, 제일 앞과 제일 뒤에 있는 숫자도 높이의 차에 포함을 해야 한다 즉 단순히 정렬을 하게 된다면, 제일 앞에 있는 숫자와 제일 뒤에 있는 숫자의 차가 제일 커서, 답을 구할 수 없다 예시) 문제 풀이 먼저 정렬을 해야 하긴 한다 (오름차순으로 정렬을 했다) For문을 순회할 때 Index가 짝수 일 때 현재 index에서 빼기를 한다 index를 빼는 것은 0으로 시작해서, 뺄 때마다 -1 씩 누적을 시킨다 For문을 순회할 때 Index가 홀수 일 때 현재 index에서 같이 빼기를 한다 index를 빼는 것은 -2로 시작해서,.. 2023. 1. 4.
[Python] 백준 2108 - 통계학 🧑‍💻 백준 2108 - 통계학 Silver 3 - 정렬 산술과 딕셔너리를 주로 사용하면 쉽게 풀 수 있는 문제다 문제에서 구하라는 산술평균, 중앙값, 최빈값, 범위를 구하면 된다 산술평균은, 주어진 값들을 전부 더하고, 더한 값에서 주어신 숫자들의 수로 나누면 된다 중앙값은, 주어진 숫자들 중 중앙에 배치된 숫자를 구한다 (오름차순으로 정렬을 해야 한다) 최빈값은 중복 숫자가 제일 많은 숫자를 구한다. 만약에 2개 이상이 나오면, 중복 숫자가 많은 숫자들 중 2번째로 작은 숫자를 구한다 범위는 숫자들 중 최댓값과 최솟값의 차이를 구한다 예시) 문제 풀이 N이라는 숫자들의 개수를 준다 산술평균 숫자들을 sum을 이용해서 더해주고, N으로 나눈다 중앙값 오름차순으로 숫자들을 정렬하고, N을 2로 나눈다 그.. 2023. 1. 3.