코딩테스트 24

[백준] 5635번 : 생일 자바(JAVA) 풀이

문제문제 탐색하기N : 학생의 수입력 : 학생의 이름과 생년월일 정보 N개출력 가장 나이가 적은 사람의 이름가장 나이가 많은 사람의 이름가능한 시간복잡도입력 범위 (1 ≤ N ≤ 100)1. 입력 받기 : 입력받은 정보를 배열에 저장할 때 O(N)의 시간 복잡도를 가짐2. 정렬 : Arrays.sort() 를 사용하는 경우 O(NlogN)의 시간 복잡도를 가진다 3. 최종적으로 최악의 경우 시간 복잡도는 O(NlogN) 코드 설계하기학생 수 N를  입력받는다.Student 클래스를 만들어서 배열로 정보를 저장한다. (입력받는 정보의 타입이 달라서 클래스를 생성한 후, 배열로 담아주었다.)년도 → 달 → 일자 순으로 정렬해준다.가장 나이가 적은 사람과 많은 사람의 이름을 출력한다.풀이 코드import ja..

코딩테스트 2024.09.12

[백준] 1181번 : 단어 정렬 자바(JAVA) 풀이

문제문제 탐색하기N : 단어 개수 입력 : 알파벳 소문자로 이루어진 단어 N개출력 조건중복 단어 제거길이가 짧은 것부터길이 같으면 사전 순가능한 시간복잡도거의 모든 정렬 함수는 N개의 원소를 정렬할 때 O(NlogN)의 시간복잡도 가짐 코드 설계하기단어 개수 N를  입력받는다.단어 중복 제거를 위해 HashSet에 입력받은 단어를 저장한다.정렬을 하기 위해 HashSet -> Array로 변경한다.길이와 사전 순에 따라 정렬한다.정렬된 배열을 출력한다. 시도 회차 수정 사항 (Optional)1회차단어의 길이가 같은 경우 사전 순에 따라 정렬하는 코드를 빼서 오답처리가 되었다. 풀이 코드import java.io.BufferedReader;import java.io.IOException;import ja..

코딩테스트 2024.09.11

[백준] 10814번 : 나이순 정렬 자바(JAVA) 풀이

문제 탐색하기N : 회원의 수입력 : 온라인 저지에 가입한 사람들의 나이와 이름 (가입순)출력 : 나이 오름차순 정렬,  나이가 같으면 가입순으로 정렬 가능한 시간복잡도N이 최대 100,000으로 최악의 경우 O(n^2) 은 불가능, O(n) 시간 안에 해결해야함이차원배열 정렬을 위해 내장 sort() 함수와 Lambda 함수를 사용함코드 설계하기1. 회원 수 N 를 입력받는다 .2. 회원 수 만큼 for문을 돌리며 배열에 나이와 이름을 저장한다.3. 나이를 기준으로 오름차순 정렬을 한다.4. 나이가 같으면, 가입순으로 정렬을 한다.5. 정렬된 배열을 출력한다.풀이 코드import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu..

코딩테스트 2024.09.10

[백준] 2309번 : 일곱 난쟁이 자바(JAVA) 풀이

문제 탐색하기- 먼저 키의 합이 100이 되는 일곱 난쟁이 찾기코드 설계하기1. 문제의 Input을 받는다. (BufferedReader 사용)2. 전체 난쟁이들의 키의 합 구하기3. 차례대로 2명씩 제외해가며 키의 합이 100이 되는 구간 구하기4. 난쟁이 키 배열에서 2명 제외 후 출력하기풀이 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRe..

코딩테스트 2024.09.09