쌤리

코드업 3019 풀이 본문

자바 JAVA/자바 기초

코드업 3019 풀이

saml2l 2020. 4. 21. 13:51

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		ScheduleItem[] scheduleItems = getScheduleItemsFromInput();
		sort(scheduleItems);
		print(scheduleItems);
	}
}
	

- 함수를 활용해 메인에서 실행하려는 바가 뭔지 명확하게 나타내기 위해서 위와 같이 3가지 함수(메서드)로 나뉜다.

- 1) 입력받은 값을 스케줄 목록 배열에 넣는다. 2) 입력받은 스케줄을 정렬한다(sort) 3) 출력한다

 

private static void print(ScheduleItem[] scheduleItems) {
		for (int i = 0; i < scheduleItems.length; i++) {
			System.out.println(scheduleItems[i].name);
		}
	}

	private static void sort(ScheduleItem[] scheduleItems) {
		for (int i = scheduleItems.length - 1; i > 0; i--) {
			for (int j = 0; j < i; j++) {
				if (scheduleItems[j].isEarlierThanOnDic(scheduleItems[j + 1])) {
					ScheduleItem temp = scheduleItems[j];
					scheduleItems[j] = scheduleItems[j + 1];
					scheduleItems[j + 1] = temp;
				}
			}
		}
	}

	private static ScheduleItem[] getScheduleItemsFromInput() {
		Scanner scanner = new Scanner(System.in);

		int scheduleItemsLen = scanner.nextInt();
		scanner.nextLine();

		ScheduleItem[] scheduleItems = new ScheduleItem[scheduleItemsLen];

		for (int i = 0; i < scheduleItemsLen; i++) {
			ScheduleItem scheduleItem = new ScheduleItem();
			scheduleItem.name = scanner.next();
			scheduleItem.year = scanner.next();
			scheduleItem.month = scanner.next();
			scheduleItem.day = scanner.next();

			scheduleItem.year = String.format("%04d", Integer.parseInt(scheduleItem.year));

			scheduleItems[i] = scheduleItem;
		}

		scanner.close();

		return scheduleItems;
	}
}

class ScheduleItem {
	String name;
	String year;
	String month;
	String day;

	public String getCompareStr() {
		return year + month + day + name;
	}

	public boolean isEarlierThanOnDic(ScheduleItem other) {
		String str = this.getCompareStr();
		String str2 = other.getCompareStr();

		return str.compareTo(str2) > 0;
	}
}

- 이클립스를 활용해 자동으로 함수를 생성.

- 각 함수의 기능에 맞게 필요한 코드를 작성한다.

'자바 JAVA > 자바 기초' 카테고리의 다른 글

추상 클래스, abstract class  (0) 2020.04.24
클래스와 객체 Class & Object  (0) 2020.04.24
객체, 클래스  (0) 2020.04.16
Scanner(스캐너)를 이용한 char 입력: next().charAt(0);  (0) 2020.04.14
printf  (1) 2020.04.13
Comments