Team Project

[Java] μ—°μ˜ˆμΈ μ‹œμƒ ν”„λ‘œκ·Έλž¨

ITs Min 2023. 12. 11.

πŸ”₯ κΈ°λŠ₯ μ†Œκ°œ 및 ν•œκΈ€μ½”λ”©

   μ—°μ˜ˆμΈμ„ μ €μž₯ν•˜κ³  μ‹œμƒμ‹μ„ μ§„ν–‰ ν•  수 μžˆλŠ” ν”„λ‘œκ·Έλž¨

=====μ €μž₯ ν”„λ‘œκ·Έλž¨=====
  1. μ—°μ˜ˆμΈ μΆ”κ°€
  2. 쑰회
  3. μ‹œμƒ
  4. μ’…λ£Œ

더보기

더보기
   // 1번 μ„ νƒ μ‹œ 
   //   1.κ°€μˆ˜
   //      μ΄λ¦„을 μž…λ ₯ν•˜μ„Έμš”
   //      μΆœμƒλ…„도λ₯Ό μž…λ ₯ν•˜μ„Έμš”
   //      ν‚€λ₯Ό μž…λ ₯ν•˜μ„Έμš”
   //      μ†Œμ†μ‚¬κ°€ μžˆμŠ΅λ‹ˆκΉŒ?
   //         1.예
   //            μ†Œμ†μ‚¬ μž…λ ₯
   //         2.μ•„λ‹ˆμ˜€
   //            λ¬΄μ†Œμ†
   //   2.배우
   //      μ΄λ¦„을 μž…λ ₯ν•˜μ„Έμš”
   //      μΆœμƒλ…„도λ₯Ό μž…λ ₯ν•˜μ„Έμš”
   //      ν‚€λ₯Ό μž…λ ₯ν•˜μ„Έμš”
   //      μ†Œμ†μ‚¬κ°€ μžˆμŠ΅λ‹ˆκΉŒ?
   //         1.예
   //            μ†Œμ†μ‚¬ μž…λ ₯
   //         2.μ•„λ‹ˆμ˜€
   //            λ¬΄μ†Œμ†
   //      λͺ…λŒ€μ‚¬λ₯Ό μž…λ ₯ν•˜μ„Έμš”
   //   3.예λŠ₯인
   //         μ΄λ¦„을 μž…λ ₯ν•˜μ„Έμš”
   //         μΆœμƒλ…„도λ₯Ό μž…λ ₯ν•˜μ„Έμš”
   //         ν‚€λ₯Ό μž…λ ₯ν•˜μ„Έμš”
   //         μ†Œμ†μ‚¬κ°€ μžˆμŠ΅λ‹ˆκΉŒ?
   //            1.예
   //               μ†Œμ†μ‚¬ μž…λ ₯
   //            1.μ•„λ‹ˆμ˜€
   //               λ¬΄μ†Œμ†
   
   // 2번 μ„ νƒμ‹œ 
   //   1.λͺ¨λ“ μ—°μ• μΈ μ‘°νšŒ 
   //   2.각 λΆ„μ•Ό λ³„ μ—°μ˜ˆμΈ μ‘°νšŒ
   //      1.κ°€μˆ˜
   //      2.배우
   //      3.예λŠ₯인
   //   3.μ΄λ¦„μœΌλ‘œ μ—°μ˜ˆμΈ μ‘°νšŒ
   //      κ²€μƒ‰ν•˜κ³ μž ν•˜λŠ” μ—°μ˜ˆμΈμ˜ μ΄λ¦„을 μž…λ ₯ν•˜μ„Έμš”
   //   4.ν‚€ μˆœμ„œ μ‘°νšŒ
   
   // 3번 μ„ νƒμ‹œ 
   //    1.κ°€μš”λŒ€μƒ
   //   2.μ—°κΈ°λŒ€μƒ
   //   3.μ—°μ˜ˆλŒ€μƒ
   
   // μ‹œμƒμ˜ λ‘œμ§
   //   μ›ν•˜λŠ” λŒ€μƒμ˜ λ°°μ—΄μ„ λ”°λ‘œ μƒμ„±ν•˜μ—¬ λ°°μ—΄μ˜ κΈΈμ΄ λ§ŒνΌμ˜ λžœλ€ μˆ«μžλ₯Ό λ½‘μ•„ λ½‘νžŒ λ²ˆν˜Έμ˜ μΈλ±μŠ€μ˜ κ°μ²΄κ°€ μ‹œμƒμž.
   
   // 4번 μ„ νƒμ‹œ
   //    ν”„λ‘œκ·Έλž¨ μ’…λ£Œ


πŸ’§ μ½”λ“œ

package test01;

import java.time.LocalDate;
import java.util.Random;
import java.util.Scanner;

class Celebrity {
	// λ§΄λ²„λ³€μˆ˜
	String name;
	int birthYear;
	String agency;
	int height;
	String type;

	// μ—°μ˜ˆμΈ 클래슀 μƒμ„±μž
	Celebrity(String name, int birthYear, String agency, int hight, String type) {
		this.name = name;
		this.birthYear = birthYear;
		this.agency = agency;
		this.height = hight;
		this.type = type;
	}

	void printInfo() {// μœ μ € 좜λ ₯
		int now = LocalDate.now().getYear();
		System.out.println("이름 : " + this.name);
		System.out.println("λ‚˜μ΄ : " + (now - this.birthYear));
		System.out.println("μ†Œμ†μ‚¬ : " + this.agency);
		System.out.println("ν‚€ : " + this.height);
	}

	void simplePrint() {// 전체 좜λ ₯μ—μ„œ μ‚¬μš©ν•  좜λ ₯
		int now = LocalDate.now().getYear();
		System.out.print(name + " / " + (now - birthYear));
	}

	void heightPrint() {
		System.out.println("이름 : " + this.name + " / ν‚€ : " + this.height);
	}
}

class Entertainer extends Celebrity {// 예λŠ₯인
	int entertainmentAwardCount;

	Entertainer(String name, int birthYear, int hight) {
		this(name, birthYear, "λ¬΄μ†Œμ†", hight);
	}

	Entertainer(String name, int birthYear, String agency, int hight) {
		super(name, birthYear, agency, hight, "예λŠ₯인");
		this.entertainmentAwardCount = 0;
	}

	@Override
	void printInfo() {
		int now = LocalDate.now().getYear();
		System.out.println("직업 : " + this.type);
		System.out.println("이름 : " + this.name);
		System.out.println("λ‚˜μ΄ : " + (now - this.birthYear));
		System.out.println("μ†Œμ†μ‚¬ : " + this.agency);
		System.out.println("ν‚€ : " + this.height);
		if (entertainmentAwardCount > 0) {
			System.out.println("μ—°μ˜ˆ λŒ€μƒ 횟수 : " + this.entertainmentAwardCount);
		}
	}

}

class Actor extends Celebrity {// 배우
	int actingAwardCount;
	String famousLine;

	Actor(String name, int birthYear, int hight, String famousLine) {
		this(name, birthYear, "λ¬΄μ†Œμ†", hight, famousLine);
	}

	Actor(String name, int birthYear, String agency, int hight, String famousLine) {
		super(name, birthYear, agency, hight, "배우");
		this.actingAwardCount = 0;
		this.famousLine = famousLine;
	}

	@Override
	void printInfo() {
		int now = LocalDate.now().getYear();
		System.out.println("직업 : " + this.type);
		System.out.println("이름 : " + this.name);
		System.out.println("λ‚˜μ΄ : " + (now - this.birthYear));
		System.out.println("μ†Œμ†μ‚¬ : " + this.agency);
		System.out.println("ν‚€ : " + this.height);
		if (actingAwardCount > 0) {
			System.out.println("μ—°κΈ° λŒ€μƒ 횟수 : " + this.actingAwardCount);
		}
	}

	void famousLinePrint() {
		System.out.print(this.famousLine);
	}
}

class Singer extends Celebrity {// κ°€μˆ˜
	int musicAwardsCount;

	Singer(String name, int birthYear, int hight) {
		this(name, birthYear, "λ¬΄μ†Œμ†", hight);
	}

	Singer(String name, int birthYear, String agency, int hight) {
		super(name, birthYear, agency, hight, "κ°€μˆ˜");
		this.musicAwardsCount = 0;
	}

	@Override
	void printInfo() {
		int now = LocalDate.now().getYear();
		System.out.println("직업 : " + this.type);
		System.out.println("이름 : " + this.name);
		System.out.println("λ‚˜μ΄ : " + (now - this.birthYear));
		System.out.println("μ†Œμ†μ‚¬ : " + this.agency);
		System.out.println("ν‚€ : " + this.height);
		if (musicAwardsCount > 0) {
			System.out.println("κ°€μš” λŒ€μƒ 횟수 : " + this.musicAwardsCount);
		}
	}
}

public class Test01 {
	static Scanner sc = new Scanner(System.in);

	public static int mainMenu() {
		System.out.println("1. μ—°μ˜ˆμΈ μΆ”κ°€");// 1. μ—°μ˜ˆμΈ μΆ”κ°€
		System.out.println("2. μ—°μ˜ˆμΈ 쑰회");// 2. 쑰회
		System.out.println("3. μ—°μ˜ˆμΈ μ‹œμƒ");// 3. μ‹œμƒ
		System.out.println("0. ν”„λ‘œκ·Έλž¨ μ’…λ£Œ");// 4. μ’…λ£Œ

		int action = numCk(0, 3);
		return action;
	}

	public static int typeMenu() {
		System.out.println("1. κ°€μˆ˜");// 1. κ°€μˆ˜
		System.out.println("2. 배우");// 2. 배우
		System.out.println("3. 예λŠ₯인"); // 3. 예λŠ₯인

		int action = numCk(1, 3);
		return action;
	}

	public static String nameInput() {
		System.out.print("이름을 μž…λ ₯ν•˜μ„Έμš” : ");
		String name = sc.next();
		return name;
	}

	public static int birthYearInput() {
		System.out.print("μΆœμƒλ…„λ„λ₯Ό μž…λ ₯ν•˜μ„Έμš” : ");
		int birthYear = sc.nextInt();
		return birthYear;
	}

	public static String agencyInput() {
		System.out.print("μ†Œμ†μ‚¬λ₯Ό μž…λ ₯ν•΄μ£Όμ„Έμš” : ");
		String agency = sc.next();
		return agency;
	}

	public static int hightInput() {
		System.out.print("ν‚€λ₯Ό μž…λ ₯ν•˜μ„Έμš” : ");
		int hight = sc.nextInt();
		return hight;
	}

	public static String famousLineInput() {
		System.out.print("λͺ…λŒ€μ‚¬λ₯Ό μž…λ ₯ν•˜μ„Έμš” : ");// λͺ…λŒ€μ‚¬λ₯Ό μž…λ ₯ν•˜μ„Έμš”
		String famousLine = sc.next();
		return famousLine;
	}

	public static int hasAgency() {
		System.out.println("μ†Œμ†μ‚¬κ°€ μžˆμŠ΅λ‹ˆκΉŒ?(1. 예 / 2. μ•„λ‹ˆμ˜€)");// μ†Œμ†μ‚¬κ°€ μžˆμŠ΅λ‹ˆκΉŒ?
		int choose = numCk(1, 2);
		return choose;
	}

	public static void singerInput(Celebrity[] datas, int index) {
		String name = nameInput();
		int birthYear = birthYearInput();
		int hight = hightInput();
		int choose = hasAgency();
		if (choose == 1) {// 1.예
			String agency = agencyInput();
			datas[index] = new Singer(name, birthYear, agency, hight);
		} else if (choose == 2) {// 2.μ•„λ‹ˆμ˜€
			datas[index] = new Singer(name, birthYear, hight);
		}
	}

	public static void actorInput(Celebrity[] datas, int index) {
		String name = nameInput();
		int birthYear = birthYearInput();
		int hight = hightInput();
		int choose = hasAgency();
		if (choose == 1) {// 1.예
			String agency = agencyInput();
			datas[index] = new Actor(name, birthYear, agency, hight, famousLineInput());
		} else if (choose == 2) {// 2.μ•„λ‹ˆμ˜€
			datas[index] = new Actor(name, birthYear, hight, famousLineInput());
		}
	}

	public static void entertainerInput(Celebrity[] datas, int index) {
		String name = nameInput();
		int birthYear = birthYearInput();
		int hight = hightInput();
		int choose = hasAgency();
		if (choose == 1) {// 1.예
			String agency = agencyInput();
			datas[index] = new Entertainer(name, birthYear, agency, hight);
		} else if (choose == 2) {// 2.μ•„λ‹ˆμ˜€
			datas[index] = new Entertainer(name, birthYear, hight);
		}
	}

	public static int searchMenu() {
		System.out.println("1. λͺ¨λ“  μ—°μ˜ˆμΈ 쑰회");//
		System.out.println("2. 각 λΆ„μ•Ό 별 μ—°μ˜ˆμΈ 쑰회");
		System.out.println("3. μ΄λ¦„μœΌλ‘œ μ—°μ˜ˆμΈ 쑰회");
		System.out.println("4. ν‚€ μˆœμ„œ 쑰회");

		int action = numCk(1, 4);
		return action;
	}

	public static void searchAll(Celebrity[] datas, int index) {
		for (int i = 0; i < index; i++) {// λ°°μ—΄μ˜ λͺ¨λ“  μ—°μ˜ˆμΈ 좜λ ₯
			datas[i].simplePrint();
			if (datas[i] instanceof Actor) {
				((Actor) datas[i]).famousLinePrint();
			}
			System.out.println();
		}
	}

	public static void searchType(Celebrity[] datas, int index, int action) {
		for (int i = 0; i < index; i++) {
			if (action == 1 && datas[i] instanceof Singer) {// 1번 μ„ νƒμ‹œ
				datas[i].simplePrint();
				System.out.println();
				// λ°°μ—΄μ—μ„œ κ°€μˆ˜λ§Œ μ°Ύμ•„μ„œ 좜λ ₯
			} else if (action == 2 && datas[i] instanceof Actor) {// 2번 μ„ νƒμ‹œ
				datas[i].simplePrint();
				if (datas[i] instanceof Actor) {
					((Actor) datas[i]).famousLinePrint();
					System.out.println();
				}
				// λ°°μ—΄μ—μ„œ 배우만 μ°Ύμ•„μ„œ 좜λ ₯
			} else if (action == 3 && datas[i] instanceof Entertainer) {// 3번 μ„ νƒμ‹œ
				datas[i].simplePrint();
				System.out.println();
				// λ°°μ—΄μ—μ„œ 예λŠ₯인만 μ°Ύμ•„μ„œ 좜λ ₯
			}
		}

	}

	public static void searchName(Celebrity[] datas, int index) {
		String name = nameInput();
		for (int i = 0; i < index; i++) {// 검색 받은 μ—°μ˜ˆμΈμ˜ 이름을 μ°Ύμ•„μ„œ 좜λ ₯
			if (datas[i].name.equals(name)) {
				datas[i].printInfo();
			}
		}
	}

	public static void searchHight(Celebrity[] datas, int index) {

		Celebrity[] copiedArr = new Celebrity[index]; // 볡사할 λ™μΌν•œ 크기의 λ°°μ—΄ 생성
		Celebrity[] maxArr = new Celebrity[1]; // Celeb νƒ€μž…μ„ κ°–λŠ” μž„μ‹œ λ°°μ—΄ 1μΉΈ
		for (int i = 0; i < index; i++) { // λ°°μ—΄ 볡사
			copiedArr[i] = datas[i];
		}

		// 선택정렬

		for (int i = 0; i < copiedArr.length - 1; i++) { // λ°°μ—΄ 크기의 -1 만큼 반볡
			int maxIndex = i; // 0번 μΈλ±μŠ€κ°€ μ΅œλŒ€κ°’μ΄λΌκ³  κ°€μ •
			// μ΅œλŒ€κ°’μ„ κ΅¬ν•˜κΈ° μœ„ν•œ 반볡문
			for (int a = i + 1; a < copiedArr.length; a++) { // λ°°μ—΄ 크기 만큼 반볡
				if (copiedArr[a].height > copiedArr[maxIndex].height) { // a(i+1)λ²ˆμ§Έμ™€ i번째 인덱슀 비ꡐ
					// 쑰건식이 참이라면
					maxIndex = a; // μ΅œλŒ€κ°’ 인덱슀 번호λ₯Ό a(i+1)번으둜 λ³€κ²½
				}
			}
			// μŠ€μœ„μΉ­
			maxArr[0] = copiedArr[i];
			copiedArr[i] = copiedArr[maxIndex];
			copiedArr[maxIndex] = maxArr[0]; 
			
		}
		// λͺ¨λ“  정렬이 λλ‚˜κ³ 
		System.out.println("ν‚€ μˆœμ„œλŒ€λ‘œ 좜λ ₯ν•©λ‹ˆλ‹€.");
		for (int i = 0; i < index; i++) {
			copiedArr[i].heightPrint();//
		}
	}

	public static int awardsMenu() {

		System.out.println("1.κ°€μš”λŒ€μƒ");// 1.κ°€μš”λŒ€μƒ
		System.out.println("2.μ—°κΈ°λŒ€μƒ");// 2.μ—°κΈ°λŒ€μƒ
		System.out.println("3.μ—°μ˜ˆλŒ€μƒ");// 3.μ—°μ˜ˆλŒ€μƒ
		int action = numCk(1, 3);
		return action;
	}

	public static void victoryPrint(Celebrity[] numberOfPeople, int winner, String type) {
		System.out.println(type + " λŒ€μƒμ€ !!!");
		System.out.println(numberOfPeople[winner].name + "μž…λ‹ˆλ‹€");
		System.out.println("μΆ•ν•˜ν•©λ‹ˆλ‹€");
	}

	public static int numCk(int min, int max) {

		int input;
		while (true) {
			System.out.print(">>> ");
			input = sc.nextInt();
			if (min <= input && input <= max) {
				break;
			} else {
				System.out.println("μž…λ ₯이 잘λͺ» λ˜μ—ˆμŠ΅λ‹ˆλ‹€");
				System.out.println(min + "~" + max + " μ‚¬μ΄μ˜ 숫자λ₯Ό μž…λ ₯ν•΄ μ£Όμ„Έμš”");
			}
		}
		return input;

	}

	public static boolean hasPeople(int index) {
		if (index > 0) {
			return true;
		}
		System.out.println("μ‘°νšŒν•  λŒ€μƒμ΄ μ—†μŠ΅λ‹ˆλ‹€");
		return false;
	}

	public static void main(String[] args) {

		Celebrity[] datas = new Celebrity[5];
		int index = 0;
		// μ—°μ˜ˆμΈμ„ μ €μž₯ν•˜κ³  μ‹œμƒμ‹μ„ μ§„ν–‰ ν•  수 μžˆλŠ” ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€μ–΄μ£Όμ„Έμš”.
		while (true) {
			// =====μ €μž₯ ν”„λ‘œκ·Έλž¨=====
			int action = mainMenu();
			if (action == 0) {// μ’…λ£Œ μ„ νƒμ‹œ
				// ν”„λ‘œκ·Έλž¨ μ’…λ£Œ
				System.out.println("ν”„λ‘œκ·Έλž¨ μ’…λ£Œ");
				break;
			} else if (action == 1) {// μΆ”κ°€ μ„ νƒμ‹œ
				if (index >= 5) {
					System.out.println("λ”λŠ” μž…λ ₯이 λΆˆκ°€λŠ₯ ν•©λ‹ˆλ‹€.");
					continue;
				}

				action = typeMenu();// 직업 메뉴
				if (action == 1) { // κ°€μˆ˜ μ„ νƒμ‹œ
					singerInput(datas, index++);

				} else if (action == 2) {// 배우 μ„ νƒμ‹œ
					actorInput(datas, index++);

				} else if (action == 3) { // 예λŠ₯인 μ„ νƒμ‹œ
					entertainerInput(datas, index++);
				}
			} else if (action == 2) {// 쑰회 μ„ νƒμ‹œ

				if (!hasPeople(index)) {
					continue;
				}

				action = searchMenu();// 쑰회 메뉴
				if (action == 1) {// λͺ¨λ“  μ—°μ˜ˆμΈ 쑰회 μ„ νƒμ‹œ
					searchAll(datas, index);

				} else if (action == 2) {// 각 뢄야별 μ—°μ˜ˆμΈ 쑰회 μ„ νƒμ‹œ

					action = typeMenu();

					searchType(datas, index, action);

				} else if (action == 3) {// μ΄λ¦„μœΌλ‘œ μ—°μ˜ˆμΈ 쑰회 μ„ νƒμ‹œ

					searchName(datas, index);

				} else if (action == 4) {// ν‚€ μˆœμ„œ 쑰회 μ„ νƒμ‹œ
					searchHight(datas, index);
				}
			} else if (action == 3) {// μ‹œμƒ μ„ νƒμ‹œ
				if (!hasPeople(index)) {
					continue;
				}
				Random rand = new Random();
				Celebrity[] numberOfPeople = new Celebrity[5];// 인원 μˆ˜μ™€ λ™μΌν•œ 길이의 λ°°μ—΄ 생성
				int cnt = 0;
				action = awardsMenu();// μ‹œμƒ μ’…λ₯˜ 메뉴 좜λ ₯

				// λΉ„μŠ·ν•œ 것이 3개 인데 λͺ¨λ“ˆν™”κ°€ κ°€λŠ₯ν•œμ§€?
				if (action == 1) {// 1번 μ„ νƒμ‹œ
					for (int i = 0; i < index; i++) {// λ°°μ—΄ λ‚΄μ˜ κ°€μˆ˜ μΈμ›μˆ˜ νŒŒμ•…
						if (datas[i] instanceof Singer) {
							numberOfPeople[cnt++] = datas[i];// 배열에 ν•΄λ‹Ή 객체 μ €μž₯
						}
					}
					int winner = rand.nextInt(cnt);
					((Singer) numberOfPeople[winner]).musicAwardsCount++;
					victoryPrint(numberOfPeople, winner, "κ°€μš”");

				} else if (action == 2) {// 2번 μ„ νƒμ‹œ
					for (int i = 0; i < index; i++) {// λ°°μ—΄ λ‚΄μ˜ 배우 μΈμ›μˆ˜ νŒŒμ•…
						if (datas[i] instanceof Actor) {
							numberOfPeople[cnt++] = datas[i];// 배열에 ν•΄λ‹Ή 객체 μ €μž₯
						}
					}
					int winner = rand.nextInt(cnt);
					((Actor) numberOfPeople[winner]).actingAwardCount++;
					victoryPrint(numberOfPeople, winner, "μ—°κΈ°");
				} else if (action == 3) {// 3번 μ„ νƒμ‹œ
					for (int i = 0; i < index; i++) {// λ°°μ—΄ λ‚΄μ˜ 예λŠ₯인 μΈμ›μˆ˜ νŒŒμ•…
						if (datas[i] instanceof Entertainer) {
							numberOfPeople[cnt++] = datas[i];// 배열에 ν•΄λ‹Ή 객체 μ €μž₯
						}
					}
					int winner = rand.nextInt(cnt);
					((Entertainer) numberOfPeople[winner]).entertainmentAwardCount++;
					victoryPrint(numberOfPeople, winner, "μ—°μ˜ˆ");
				}

				// μ‹œμƒμ˜ 둜직
				// μ›ν•˜λŠ” λŒ€μƒμ˜ 배열을 λ”°λ‘œ μƒμ„±ν•˜μ—¬ λ°°μ—΄μ˜ 길이 만큼의 랜덀 숫자λ₯Ό 뽑아 λ½‘νžŒ 번호의 인덱슀의 객체가 μ‹œμƒμž.
			}

		}
	}

}

⚑ ν›„κΈ°

  객체λ₯Ό μ΄μš©ν•œ 첫 νŒ€ν”Œμ΄μ—ˆκΈ° λ•Œλ¬Έμ— λ‘œμ§μ„ μ§€ λ•Œλ„ νŒ€μ›λ“€κ³Ό μ†Œν†΅μ„ ꡉμž₯히 μ˜€λž˜ν–ˆλ‹€. κ°€μž₯ 였래 κ³ λ―Όν–ˆλ˜ 뢀뢄은 ν‚€μˆœμ„œλŒ€λ‘œ μ •λ ¬ν•˜λŠ” λ‘œμ§μ΄μ—ˆλ‹€. λ°°μ—΄μ—μ„œ ν‚€κ°’κ³Ό indexλ₯Ό κ°€μ Έμ™€μ„œ 정렬을 μ‹œν‚€λ €κ³  ν•˜μ˜€μœΌλ‚˜ κ·Έλ ‡κ²Œ 되면 κΈ°μ‘΄ λ°°μ—΄ μžμ²΄κ°€ λ°”λ€Œμ–΄λ²„λ¦¬λŠ” λ¬Έμ œκ°€ μžˆμ—ˆκΈ° λ•Œλ¬Έμ— κΈ°μ‘΄ 배열을 κ·ΈλŒ€λ‘œ λ³΅μ‚¬ν•΄μ„œ μƒˆλ‘œμš΄ λ°°μ—΄λ‘œ λ§Œλ“€κ³  Celebνƒ€μž…μ˜ λ°°μ—΄ 1칸을 μž„μ‹œλ‘œ λ§Œλ“€μ–΄μ„œ 선택정렬을 ν•˜λŠ” λ‘œμ§μ„ μ‚¬μš©ν–ˆλ‹€.

 

 

  λ‹€μŒμœΌλ‘œ 였래 κ³ λ―Όν–ˆλ˜ 뢀뢄은 ν”„λ‘œκ·Έλž¨μ˜ 메인이 λ˜λŠ” μ‹œμƒμ‹ λ‘œμ§μ΄μ—ˆλŠ”λ° 사싀 이 λ‘œμ§μ—μ„œλŠ” νŒ€μ› 개개인의 μ˜κ²¬λ“€μ΄ λ‚œλ¬΄(?)ν–ˆλ‹€. λ‚˜μ˜ μ˜κ²¬μ€ μ²˜μŒμ— μž…λ ₯을 받을 λ•Œ μ§μ—…λ³„λ‘œ λ”°λ‘œ 카운트λ₯Ό ν•˜μžλŠ” κ²ƒμ΄μ—ˆμ§€λ§Œ, λ³€μˆ˜λ₯Ό λ”°λ‘œ λ‘”λ‹€λŠ” 게 쒋은 ν”„λ‘œκ·Έλž¨μΈκ°€? λΌλŠ” 생각이 λ“€μ–΄μ„œ μ˜κ²¬μ„ κ΅½ν˜”λ‹€. (κ°•μ‚¬λ‹˜μ€ 보톡 이 방법을 μ‚¬μš©ν•˜λŠ” 것이 λ‚˜μ€‘μ— 데이터가 λ§Žμ•„μ‘Œμ„ λ•Œ λ°˜λ³΅λ¬Έμ„ 적게 돌리기 λ•Œλ¬Έμ— 더 μ’‹λ‹€λŠ” 말씀을 ν•΄μ£Όμ…¨λ‹€.)

 

 

  λ‚΄ 의견이 λ“€μ–΄κ°„ 뢀뢄도 있고 (ν‚€μˆœμ„œλŒ€λ‘œ μ •λ ¬) νŒ€μ›μ˜ 의견이 λ“€μ–΄κ°„ 뢀뢄도 μžˆμ§€λ§Œ μ–΄μ°Œ 됐든 크게 의견이 μΆ©λŒλ‚œ 적 ν•œλ²ˆ 없이 μ„œλ‘œμ˜ μ˜κ²¬μ„ λκΉŒμ§€ λ“€μ–΄μ£Όκ³  κ³„μ†ν•΄μ„œ μƒˆλ‘œμš΄ 방법을 μ°ΎλŠ” 과정이 λ„ˆλ¬΄ μ’‹μ•˜λ‹€. λ””μŠ€μ½”λ“œλ₯Ό μ‚¬μš©ν•΄μ„œ νŒ€μ› 각자 μ½”λ“œ μ„€λͺ…을 ν•  λ•Œ λ‚΄ μ½”λ“œλŠ” ν•¨μˆ˜ν™”κ°€ 잘 μ•ˆ λ˜μ–΄μžˆμ–΄μ„œ μ„€λͺ…을 ν•˜λŠ” 것도 νž˜λ“€μ—ˆκ³  νŒ€μ›λ“€μ΄ 이해λ₯Ό ν•˜κΈ°μ—λ„ νž˜λ“€μ—ˆλ‹€. λ‹€μŒλΆ€ν„° μ½”λ“œλ₯Ό μ§€ λ•ŒλŠ” μ’€ 더 μ •κ΅ν•˜κ²Œ ν•¨μˆ˜ν™”λ₯Ό ν•΄μ„œ 가독성이 쒋은 μ½”λ“œλ₯Ό μ™„μ„±μ‹œν‚€λŠ” 것이 νŒ€μ— 도움이 될 것 κ°™λ‹€κ³  λŠκΌˆλ‹€.


 

λŒ“κΈ€

TOP

λŠ¦μ—ˆλ‹€κ³  생각할 땐 λ„ˆλ¬΄ λŠ¦μ€ κ±°λ‹€.