-
자바 100제 Part.4 / 1 ~ 7개발자 수업/인터넷 강의 2021. 9. 23. 01:47
1. 정수로 이루어진 배열에서 가장 큰 값을 구하는 최댓값 알고리즘 구현
public class Java100_algorithm_MaxAlgorithm{ public static void main(String[] args){ // 배열 선언 int[] ar = {4, 13, 15, 17, -2}; // max, min 함수 System.out.println(Math.max(10,4)); // 10 System.out.println(Math.min(10,4)); // 4 // 일단 배열 내 첫 번째 원소의 값이 제일 크다고 가정하고 초기화 //int max = Integer.MIN_VALUE; int max = ar[0]; // 반복문 돌면서 비교하여 출력 System.out.println("현재 배열 내 가장 큰 값은: " + max); // 4 for(int i=1; i<ar.length; i++){ if(max<ar[i]){ max = ar[i]; } } System.out.println("현재 배열 내 가장 큰 값은: " + max); // 17 } }
2. 정수로 이루어진 배열에서 가장 작은 값을 구하는 최솟값 알고리즘
public class Java100_algorithm_MinAlgorithm{ public static void main(String[] args){ int ar = {4, 13, 150, 17, -2} int min = ar[0]; for(i=1; i<ar.length; i++){ if(min>ar[i]){ min = ar[i]; } } System.out.println("현재 배열 내 가장 작은 값은 : " + min); } }
3. 랜덤으로 정수 10개의 값을 갖는 배열을 만들어 최댓값과 최솟값을 같이 출력
public class Java100_algorithm_MaxMin{ public static void main(String[] args){ // 정수 배열 선언 int[] ar = new int[10]; // 반복문 돌면서 랜덤으로 10개의 정수 값을 세팅 -> Math.random() for(int i=0; i<ar.length; i++){ ar[i] = (int)(Math.random() * 10); System.out.print(ar[i]+" "); } // 최댓값과 최솟값 변수 초기화 int max = ar[0], min = ar[0]; // 반복문을 돌면서 최댓값, 최솟값 비교 for(int i=0; i<ar.length; i++){ if(max<ar[i]){ max = ar[i]; } if(min>ar[i]){ min = ar[i]; } } } }
4. 정렬 함수를 이용하여 학생들의 성적을 꼴찌부터 1등까지 순위대로 출력 (오름차순 정렬)
import java.util.Arrays; public class Java100_algorithm_SortAlgorithmWithMethod{ public static void main(String[] args){ // 배열 선언 -> 성적 배열 int[] scores = {88, 55, 39, 100, 90, 100, 98, 67}; // 성적 배열 -> 오름차순 정렬(기본) -> Arrays.sort(배열명); -> import 필요 // 클래스 메서드로써 Arrays 클래스의 인스턴스 생성 없이 바로 사용 가능 System.out.println("정렬 들어가기 전 ="); // 88 55 39 100 90 100 98 67 for(int i=0; i<scores.length; i++){ System.out.print(scores[i]+" "); } Arrays.sort(scores); System.out.println("정렬 들어간 후 ="); // 39 55 67 88 90 98 100 100 for(int i=0; i<scores.length; i++){ System.out.print(scores[i] + " "); } // 향상된 for문 사용 System.out.println("정렬 들어간 후 =") for(int i:scores) System.out.print(i+" "); } }
5. 정렬 함수를 이용하여 학생들의 성적을 1등부터 꼴찌까지 순위대로 출력
import java.util.Arrays; import java.util.Collections; public class Java100_algorithm_SortAlgorithmWithMethod2{ public static void main(String[] args){ // 배열 선언 -> 성적 배열 // 이 때, 내림차순이거나 원하는대로 정렬의 조건을 설정해서 하고자 할 때 -> 기본형(Primitive Type)의 배열에는 적용 안 됨 // 따라서, 래퍼 클래스로 만들어서 적용 // 참고로 String 타입은 기본형 아님 Integer[] scores = {88, 55, 33, 100, 90, 99, 77, 66}; // 성적 배열 -> 내림차순 정렬 -> Arrays.sort(); -> import와 추가 옵션 설정 필요 -> (배열명, 컬렉션 reverseOrder) // Collections 클래스의 reverseOrder() 메서드 사용 -> import 필요 System.out.print("정렬 전 = "); for(int i=0; i<scores.length; i++){ System.out.print(scores[i]+" "); } // 내림차순 정렬 Arrays.sort(scores,Collections.reverseOrder()); System.out.print("정렬 후 = "); for(int i=0, i<scores.length; i++){ System.out.print(scores[i]+" "); } // 향상된 for문 System.out.print("정렬 후 = "); for(int i:scores){ System.out.print(i+" "); } } }
6. 학생들의 성적을 1등부터 순위를 매겨서 출력
public class Java100_algorithm_RankAlgorithm{ public static void main(String[] args){ // 배열 선언 -> 성적 배열, 랭킹 배열 int[] scores = {88, 50, 38, 100, 90, 100, 99, 75}; int s_len = scores.length; int[] ranking = new int[s_len]; // 반복문 돌면서 랭킹 처리 for(int i=0; i<s_len; i++){ // 랭킹 초기화 -> 일단 전부 1등으로 초기화 ranking[i] = 1; // 중첩 반복문 for(int j=0; j<s_len; j++){ if(scores[i]<scores[j]){ ranking[i]++; } } } // 출력 System.out.print(ranking[0]); // 88점 -> 5 System.out.print(ranking[1]); // 50점 -> 7 } }
7. 학생들의 성적을 1등부터 순위를 매겨서 출력 (오름차순 정렬)
import java.util.Arrays; public class Java100_algorithm_RankAlgorithm2{ public static void printRanking(int[]scores, int[]ranking){ // 배열 길이 int scores_len = scores.length; int ranking_len = scores_len; System.out.println(scores_len); // 8 System.out.println("총 "+scores_len+"명 학생의 성적과 등수는?"); for(int i=0; i<scores_len; i++){ System.out.print(scores[i] +" 점 -> "+ ranking[i] + "등 "); } System.out.println(); } public static void main(String[] args){ // 배열 선언 -> 성적 배열, 랭킹 배열 int[] scores = {88, 50, 38, 100, 90, 100, 99, 75}; int s_len = scores.length; int[] ranking = new int[s_len]; // 오름차순 배열 정렬 Arrays.sort(scores); // 반복문 돌면서 랭킹 처리 for(int i=0; i<s_len; i++){ // 랭킹 초기화 -> 일단 전부 1등으로 초기화 ranking[i] = 1; // 중첩 반복문 for(int j=0; j<s_len; j++){ if(scores[i]<scores[j]){ ranking[i]++; } } } // 출력 -> 별도의 메서드 호출 printRanking(scores, ranking); } }
'개발자 수업 > 인터넷 강의' 카테고리의 다른 글
자바 100제 Part.4 / 14 ~ 19 (0) 2021.09.27 자바 100제 Part.4 / 8 ~ 13 (0) 2021.09.27 자바 100제 Part.3 / 24 ~ 28 (0) 2021.09.22 자바 100제 Part.3 / 14 ~ 23 (0) 2021.09.18 자바 100제 Part.3 / 5 ~ 13 (0) 2021.09.17