목록전체 글 (98)
CodeClover

[문제링크]https://www.acmicpc.net/problem/7568 📌 가능한 시간복잡도이중 반복문을 사용하니까 시간 복잡도는N , N 두번따라서, 가능한 시간복잡도는 O(N^2)이다. 📌 코드 설계하기먼저 몸무게랑 키를 입력받고 이중 반복문을 활용해서 i번째를 기준으로 j들과 비교해서 자신보다 몸무게랑 키가 둘 다 큰 사람을 발견하면 rank++ 으로 등수를 올리는 방식을 반복해서 등수를 순서대로 출력하면 된다. 📌 정답 코드import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N ..

[문제링크]https://www.acmicpc.net/problem/2947 📌 문제 탐색하기무작위로 입력된 1부터 5까지의 숫자조각을 1 2 3 4 5 순서로 정렬하는 문제이다. 배열의 인접한 두 숫자를 비교하여 큰 숫자를 뒤로 가도록 순서를 변경하는 버블 정렬을 활용하는 문제이다.두개의 숫자의 위치가 변경될 때마다 숫자 배열을 출력해야한다. 📌 가능한 시간복잡도버블 정렬의 시간복잡도는 크게 2가지로 나뉜다. 1. 평균적 & 복잡한 시간복잡도 : N개의 숫자를 입력받아 배열의 길이가 n인 경우 각각의 요소를 최대 (n-1)번 비교해야하기 때문에 시간 복잡도 O(N^2) 을 갖는다.2. 간단하고 짧은 시간복잡도 : 이미 정렬이 완료된 상태의 배열으로 입력된 경우 한번의 반복으..
[문제링크]https://www.acmicpc.net/problem/25305 📌 문제 탐색하기N명의 학생중에서 가장 점수가 높은 K명의 학생의 점수 커트라인을 구하는 문제이다. 커트라인은 상을 받은 학생중에서 가장 점수가 낮은 학생의 점수값을 출력하면 되는 문제이기때문에 입력받은 점수를 내림차순으로 정렬하고 그중에 k번째 점수를 출력하면 되는 문제이다. 📌 가능한 시간복잡도1. 입력한 점수를 정렬해야한다. O(n logn)2. k번째 값을 출력한다. O(1) 따라서, 가능한 시간복잡도는 O(N logN) 입니다.📌 코드 설계하기학생수 N과 상받을 학생수 K명의 값을 입력받고 -> 입력받은 학생수 N명의 점수를 정렬하고 -> 정렬된 값에서 k번째 값을 출력한다. 이 순서대로 코드를 설계함. 하지만,..
[문제링크]https://www.acmicpc.net/problem/5635 📌 문제 탐색하기학생의 이름과 생일 정보를 활용해서 가장 나이가 적은 사람 ( = 즉, 가장 최근에 태어난 사람 ) 과 가장 나이가 많은 사람 ( = 즉, 가장 먼저 태어난 사람 ) 을 구해야한다. 문제를 풀어야하는 순서를 정리해보면,1. 학생의 정보를 입력받고 -> 2. 학성 정보를 시간순으로 정렬시키고 -> 3. 정렬된 리스트에서 처음과 마지막 값을 출력 📌 가능한 시간복잡도1. 정보를 입력 받는다. O(N)2. 입력받은 정보를 정렬한다. O(N logN)3. 정렬된 값에서 특정 순서의 값을 출력한다. O(1) 따라서, 가능한 시간복잡도는 O(N logN) 입니다. 📌 코드 설계하기학생의 정보를 입력받고 -> 학성 ..
📌 문제 탐색하기주어진 단어를 정렬하는 문제입니다.첫째, 단어의 길이가 짧은 순서대로 정렬한다.둘째, 길이가 동일한 경우 사전 순서대로 정렬한다.셋째, 중복된 단어는 제거 📌 가능한 시간복잡도정렬 - Array.sort( ) 함수 사용하면 시간 복잡도 O(n logn)이고, 중복제거 - 모든 단어를 체크해서 중복된 단어가 있는지 찾아야하므로 O(n)의 시간 복잡도를 갖는다. 따라서 최종 전체 알고리즘의 시간 복잡도는 O(n logn)이라고 생각합니다. 📌 코드 설계하기1. 배열으로 단어들을 입력받는다.2. 정렬한다. 2-1. 단어 길이 기준 정렬 2-2. 사전 순서 정렬 ( 단어 길이 동일한 경우 )3. 중복된 단어 제거해야함..... => for문 사용해서 한바퀴 돌면서 단어 체크하고..
https://www.acmicpc.net/problem/10814 📌 문제 탐색하기나이가 오름차순으로 정렬되어야 하고, 나이가 동일한 경우 가입한 순서대로 출력하면 된다. 📌 가능한 시간복잡도1. 입력받은 데이터를 배열으로 저장해야하고, 나이에 따라서 정렬하기 위해서 Arrays.sort()를 사용해야합니다. 입력받기 => 시간 복잡도 : O(N) 정렬하기 => 시간 복잡도 : O(N logN) 결과적으로... O(N logN) 이라고 생각함.📌 코드 설계하기1. 회원 수 N의 값과, 회원 이름 배열을 입력받습니다. 2. 입력 값을 나이 기준으로 오름차순으로 정렬합니다.3. 나이가 동일한 경우 가입 순서대로 정렬합니다.📌 정답 코드import java.util.*;public..