Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
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
Tags
more
Archives
Today
Total
관리 메뉴

정리정돈 개발블로그~

[19일차] 국비 교육 본문

국비학원 교육 일지

[19일차] 국비 교육

snooop 2022. 8. 12. 17:35

시험 데이

 

<성적순 정렬>

 

package 성적순정렬;
//-학생에 대한 성적순 정렬하기 - comparable
// 5명에 대한 이름과 성적을 입력 받음
// 성적이 높은 사람 순으로 정렬
// TreeSet (트리형태의 자료 구조이며, 트리 생성 시 자동 정렬 특성을 가지고 있음)
// 클래스 타입으로 트리를 구성하기 위해서는 검색 조건의 기준을 만들어 줘야 한다.

import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;

public class gradeArray {
    public static void main(String[] args) {
       /* System.out.print("5명의 이름과 성적을 입력하세요 : ");
        Scanner sc = new Scanner(System.in);
        String[] name = new String[5];
        int[] grade = new int[5];
        // 트리셋에 값이 대입될때 자동 정렬 됩니다.
        // 값이 입력되면 현재 입력된 값이 루트노드 기준으로 큰지 작은지 판단해서 저장 위치 결정 함.*/
        TreeSet<gradeCompareTo> treeSet = new TreeSet<>();
        /*for(int i = 0; i< 5; i++) {
            name[i] = sc.next();
            grade[i] = sc.nextInt();
            // 객체를 바로 생성
            treeSet.add(new gradeCompareTo(name[i], grade[i]));

        }
        for(gradeCompareTo e : treeSet){
            System.out.print(e.grade + " ");
        }*/

         treeSet.add(new gradeCompareTo("우영우" , 95));
         treeSet.add(new gradeCompareTo("동그라미", 65));
         treeSet.add(new gradeCompareTo("이준호", 77));
         treeSet.add(new gradeCompareTo("최수연", 88));
         treeSet.add(new gradeCompareTo("정명석", 97));
         Iterator<gradeCompareTo> iterator = treeSet.iterator();
         while (iterator.hasNext()){
             gradeCompareTo e = iterator.next();
             System.out.print(e.name+ " ");
         }
    }
}

출력

 

 

 

정명석 우영우 최수연 이준호 동그라미

 

 

 

package 단어정렬;
// 개수입력 받음 (ex.15개)
// 개수 만큼의 단어를 입력(ex. 15개의 단어입력)
// 길이가 짧은 것이 먼저 오고, 길이가 같은 경우 사전 순 정렬, 동일 단어는 중복 제거

import java.util.*;

public class dicArray {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("개수 입력 : ");
        int n = sc.nextInt();
        String[] word = new String[n];
        sc.nextLine(); // 버퍼 비우기(개행문자가 다음 입력값으로 들어가는 걸 방지)

        for(int i = 0; i< word.length; i++){
            word[i] = sc.nextLine(); // 엔터키 기준으로 입력 받기 위해 nextLine()

        }
        // set 컬렉션 : 순서를 보장해주지 않음, 중복 허용 하지 않음
        // asList() : 배열을 컬렉션에 넣을 때 사용하는 메소드
        // 중복 제거
        HashSet<String> hashSet = new HashSet<>(Arrays.asList(word));
        // String[0] : 원래 생성된 크기 만큼을 넘긴다는 의미
        word = hashSet.toArray(new String[0]);
        
        Arrays.sort(word, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                if(o1.length() == o2.length()){
                    return o1.compareTo(o2); // 길이가 같으면 사전순 정렬
                }else{
                    return o1.length() - o2.length(); // 만약 앞에 것이 길다면 양수(양수가 반환되면 정렬조건)
                }
            }
        });
        System.out.println(Arrays.toString(word));
    }
}

 

출력

 

개수 입력 : 8
it
motr
apple
banana
gogo
hihi
it
[it, gogo, hihi, motr, apple, banana]
mo
Process finished with exit code 0

'국비학원 교육 일지' 카테고리의 다른 글

[21일차] 국비 교육  (0) 2022.08.17
[20일차] 국비 교육  (0) 2022.08.16
[18일차] 국비 교육  (0) 2022.08.11
[17일차] 국비교육  (0) 2022.08.10
[16일차] 국비교육  (0) 2022.08.09