정렬

📖 문제 https://www.acmicpc.net/problem/3758    💡  풀이 방식• 정렬. 문제의 조건에 맞게 정렬한다. @Overridepublic int compareTo(Info i) { if (this.score == i.score) { // 총점 높은 순 if (this.cnt == i.cnt) // 총점 같고 제출 횟수 같으면, 마지막 제출 시간 더 빠른 순 return this.time - i.time; return this.cnt - i.cnt; // 총점 같고, 제출 횟수 다르면, 제출 횟수 적은 순순 } return i.score - this.score;}   🔺 코드12345678910..
📖 문제 https://www.acmicpc.net/problem/10431   💡  풀이 방식• 시뮬레이션1. TC 번호와 20개의 숫자를 입력받는다.2. 각 학생들에 대해 본인 앞에 있는 본인보다 키 큰 사람 수를 구한다. ⇒ 시간 복잡도 : O(TC * N^2) 🔺 코드123456789101112131415161718192021222324252627282930313233343536import java.util.*;import java.io.*; public class Main {    static int T, P;        public static void main(String[] args) throws IOException {        BufferedReader br = new Buf..
📖 문제 8980번: 택배 입력의 첫 줄은 마을 수 N과 트럭의 용량 C가 빈칸을 사이에 두고 주어진다. N은 2이상 2,000이하 정수이고, C는 1이상 10,000이하 정수이다. 다음 줄에, 보내는 박스 정보의 개수 M이 주어진다. M은 1이 www.acmicpc.net 💡 풀이 방식 • 그리디 + 정렬 필요 자료구조 - (보내는 마을, 받는 마을, 박스 개수) 정보를 갖는 객체 - 각 마을 별 받는 박스 개수를 기록하는 1차원 int형 배열 1. M개의 보내는 박스 정보를 입력받아 객체 배열에 저장한다. info = new Info[M + 1]; for(int i = 1 ; i = now.box) { for(int j = now.from ; j < now.to ; j++) { capacities[j..
📖 문제 2141번: 우체국 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 X[1], A[1], X[2], A[2], …, X[N], A[N]이 주어진다. 범위는 |X[i]| ≤ 1,000,000,000, 1 ≤ A[i] ≤ 1,000,000,000 이며 모든 입력은 정수이다. www.acmicpc.net 💡 풀이 방식 • 정렬 + 그리디 + 중간값 우체국 위치와, 마을 거주 인원을 저장하는 마을 객체를 만든다.마을 객체 배열에 값을 입력받고, 모든 마을의 인원 수를 저장한다. 입력받은 마을 객체 배열을 정렬한다. - 서로 거리가 같은 경우, 마을 인원 수 기준 오름차순 정렬 - 서로 거리가 다르다면, 거리 기준 오름차순 정렬 그리고 완전탐색을 통해 하나씩 인구 수를 계산하..
📖 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 풀이 방식 • 그리디 1. 연속된 5개의 광물을 한 그룹으로 묶어 각각 다이아/철/돌 곡괭이로 캤을 경우의 피로도의 합을 그룹별로 저장한다. 2. 돌로 캤을 때 가장 피로도가 높은 순으로 내림차순 정렬한다. 3. 정렬 후, 다이아 - 철 - 돌 곡괭이 순으로 캐야 피로도를 최소화할 수 있다. 🔺 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 ..
📖 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 풀이 방식 • 구현, 정렬 1. data 배열을 정렬한다. - (col-1)번째 컬럼 값이 동일하면, 첫 번째 컬럼 값 기준 내림차순 정렬 - 다르면, (col-1)번째 컬럼 값 기준 오름차순 정렬 2. (row_start - 1) ~ (row_end - 1)번째 행에 대해 아래와 같이 진행한다. - i 번째 행에 대한 합인 S_i을 누적해 더하며 구한다. (sum += data[i][j] % (i + 1)) - 그리고 나서 answer과 S_i 값을 XOR 연산한다. 💥 유의사항 문제에서는 인덱..
📖 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 풀이 방식 • 사용자 정의 정렬 1. 파일명을 HEAD / NUMBER / TAIL 로 3등분하고, 이를 (머리, 숫자, 꼬리)를 저장하는 객체 배열에 저장한다. for(int i = 0 ; i < files.length ; i++) { String file = files[i]; String head = ""; String number = ""; String tail = ""; // 1. HEAD 부분 자르기 & 숫자로 시작하는 부분 인덱스 찾기 int numIdx = 0; // 숫자로 시작하는 ..
📖 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 풀이 방식 • Map 1. 무게 배열을 오름차순 정렬한다. → 오름차순 정렬했으므로 무게가 같은 경우와 (2/3, 2/4, 3/4)일 때만 고려해 접근 2. 기존 key값과 같으면 체크해 정답 + 1 해당 예제 [100, 180, 360, 100, 270]의 경우 Map에 입력되는 값은 (100, 2), (180, 1), (270,1) (360,1)이다. 정답이 업데이트 되는 상황은 1) 두 번째 100일 때 +1 2) 270도일 때, (b) 270 * 2.0 / 3.0 = 180.0이므로 +1 ..
📖 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 풀이 방식 • 그리디 (스케줄링) 2차원 int형 배열 targets를 끝나는 시간 기준 오름차순 정렬한다. 끝나는 시간이 같다면, 시작 시간 기준 오름차순 정렬한다. 정렬된 배열을 반복문으로 돌면서 "현재 시점의 시작 위치 ≥요격 시스템의 마지막 위치 (end)"인 경우, 요격 시스템의 마지막 위치를 현재 시점의 종료 위치로 갱신하고 정답 + 1한다. 🔺 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import ..
imname1am
'정렬' 태그의 글 목록