π₯ κΈ°λ₯ μκ° λ° νκΈμ½λ©
μ°μμΈμ μ μ₯νκ³ μμμμ μ§ν ν μ μλ νλ‘κ·Έλ¨
=====μ μ₯ νλ‘κ·Έλ¨=====
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μΉΈμ μμλ‘ λ§λ€μ΄μ μ νμ λ ¬μ νλ λ‘μ§μ μ¬μ©νλ€.
λ€μμΌλ‘ μ€λ κ³ λ―Όνλ λΆλΆμ νλ‘κ·Έλ¨μ λ©μΈμ΄ λλ μμμ λ‘μ§μ΄μλλ° μ¬μ€ μ΄ λ‘μ§μμλ νμ κ°κ°μΈμ μ견λ€μ΄ λ무(?)νλ€. λμ μ견μ μ²μμ μ λ ₯μ λ°μ λ μ§μ λ³λ‘ λ°λ‘ μΉ΄μ΄νΈλ₯Ό νμλ κ²μ΄μμ§λ§, λ³μλ₯Ό λ°λ‘ λλ€λ κ² μ’μ νλ‘κ·Έλ¨μΈκ°? λΌλ μκ°μ΄ λ€μ΄μ μ견μ κ΅½νλ€. (κ°μ¬λμ λ³΄ν΅ μ΄ λ°©λ²μ μ¬μ©νλ κ²μ΄ λμ€μ λ°μ΄ν°κ° λ§μμ‘μ λ λ°λ³΅λ¬Έμ μ κ² λ리기 λλ¬Έμ λ μ’λ€λ λ§μμ ν΄μ£Όμ ¨λ€.)
λ΄ μκ²¬μ΄ λ€μ΄κ° λΆλΆλ μκ³ (ν€μμλλ‘ μ λ ¬) νμμ μκ²¬μ΄ λ€μ΄κ° λΆλΆλ μμ§λ§ μ΄μ° λλ ν¬κ² μκ²¬μ΄ μΆ©λλ μ νλ² μμ΄ μλ‘μ μ견μ λκΉμ§ λ€μ΄μ£Όκ³ κ³μν΄μ μλ‘μ΄ λ°©λ²μ μ°Ύλ κ³Όμ μ΄ λ무 μ’μλ€. λμ€μ½λλ₯Ό μ¬μ©ν΄μ νμ κ°μ μ½λ μ€λͺ μ ν λ λ΄ μ½λλ ν¨μνκ° μ μ λμ΄μμ΄μ μ€λͺ μ νλ κ²λ νλ€μκ³ νμλ€μ΄ μ΄ν΄λ₯Ό νκΈ°μλ νλ€μλ€. λ€μλΆν° μ½λλ₯Ό μ§€ λλ μ’ λ μ κ΅νκ² ν¨μνλ₯Ό ν΄μ κ°λ μ±μ΄ μ’μ μ½λλ₯Ό μμ±μν€λ κ²μ΄ νμ λμμ΄ λ κ² κ°λ€κ³ λκΌλ€.
'Team Project' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [Spring] Spring Securityλ₯Ό νμ©ν μμ λ‘κ·ΈμΈ (2/3) (0) | 2024.04.01 |
|---|---|
| [Spring] Spring Securityλ₯Ό νμ©ν μμ λ‘κ·ΈμΈ (1/3) (0) | 2024.03.29 |
| [Spring] SMS μΈμ¦ κΈ°λ₯ Controller μ΄κ΄μμ (0) | 2024.03.11 |
| [JSP] 컀μ€ν νκ·Έλ₯Ό μ΄μ©νμ¬ nav κ΅¬μ± (0) | 2024.01.29 |
| [Java] μΆκ΅¬ μ μ μ΄μ μμ₯ (0) | 2023.12.14 |
λκΈ