본문 바로가기
국비/스터디

스터디2_연습문제

by haheaven 2021. 9. 12.

스터디 : 09.12 11:00 ~17:00, 주어진 문제 풀어보고 풀이 비교

 

 

 

1. 정수를 몇 개 저장할지 키보드로부터 개수를 입력받아(100보다 작은 개수로 제한한다.) 정수 배열을 생 성하고, 이곳에 1에서 100까지 범위의 정수를 랜덤하게 삽입하시오. 같은 값은 생성하지 못하도록 설정하 고 생성된 배열을 출력하시오.

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class ex05 {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		Set<Integer> unit = new HashSet<Integer>();
		System.out.print("배열의 크기를 정해주세요 > " );
		int size = sc.nextInt();
		while(unit.size()<size) {
		   for(int i=0; i<size; i++) {
			   unit.add((int)(Math.random()*100)+1);
			   break;
		   } 
		}
		System.out.println("unit의 배열 : " + unit);	
	}
}

 


 

 

2. 돈을 입력받아 오만원권, 만원권, 오천원권, 천원권, 오백원 동전, 백원 동전, 오십원 동전, 십원 동전, 오원 동전, 일원 동전이 각각 몇 개로 변환되는지 출력하시오. 이 때 반드시 다음과 같은 배열을 사용하여 반복문으로 처리하시오.
int[] unit = {50000, 10000, 5000, 1000, 500, 100, 50, 10, 5, 1};

import java.util.Scanner;

public class ex04 {

	public static void main(String[] args) {
		int[] unit = {50000, 10000, 5000, 1000, 500, 100, 50 ,10, 5, 1};
		Scanner sc = new Scanner(System.in);
		System.out.print("돈을 입력하시면 변환 금액을 알려드리겠습니다. >> ");
		int money = sc.nextInt();
		int num =0;
		
		for(int i =0; i<unit.length; i++) {
			 num = money/unit[i];
			if(money%unit[i]!= 0) {
		     System.out.println(unit[i]+"의 지폐 수 : " + num); 
          } else if (money%unit[i] == 0) {
			 System.out.println(unit[i]+"의 지폐 수 : " + num);
          } money = money%unit[i];
		}
 }
}

 


 

3. 이름(name), 전화번호(tel) 필드와 생성자 등을 가진 Phone 클래스를 작성하고, 실행 예시와 같이 작 동하는 PhoneBook 클래스를 작성하시오.

@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
@ToString
class Phone{
	private String name;
	private String tel;

}

class PhoneBook{
	Scanner sc = new Scanner(System.in);
	List<Phone> phone;
	
	PhoneBook(){
		phone = new ArrayList<Phone>();
	}

	void addphonebook() {
		System.out.print("저장 인원 수 >> ");
		int num = sc.nextInt();
		  for(int i=0; i<num; i++) {
	    System.out.print("이름과 전화번호 >> ");
		String name = sc.next();
		String tel = sc.next();
		phone.add(new Phone(name, tel));
		}
		  System.out.println("저장되었습니다. ");
	}

	void search() {
		System.out.print("검색할 이름 > ");
		String name = sc.next();
	     sc.nextLine();
	     for(Phone phones : phone) {
	    	 if(phones.getName().equals(name)) {
	    		 System.out.println(phones.getName()+"의 번호는 "+ phones.getTel()+"입니다.");
	    		 break;
	         } else {
	    	     System.out.println(name + "이 없습니다. ");
	    	     break;
	    	   }  
	     }
	}
	
	void manage() {
		while(true) {
			System.out.println("====phonebook에는 저장(1),검색(2), 종료(3) 기능이 있습니다. ====");
			System.out.print("===번호를 입력해주세요. ");
			int choice = sc.nextInt();
		switch(choice) {
		case 1: addphonebook(); break;
		case 2: search(); break;
		case 3: System.out.println("프로그램 종료"); return;
		default : System.out.println("잘못입력했습니다."); break;
		}
	} 
 }	
}
public class ex1 {
	public static void main(String[] args) {
		PhoneBook pb = new PhoneBook();
		pb.manage();
	}

}

 

 

 

 


 

 

4. 갬블링 게임
게임에 참여하는 선수의 수를 입력받고 각 선수의 이름을 입력하시오. 각 사람은 Person 클래스로 작성한 다. 선수가 한 번씩 게임을 진행하며 각 사람이 자기 차례에서 Enter를 누르면 3개의 난수(1~3사이)가 발 생하며 이 숫자가 모두 같으면 승자가 되고 게임이 끝난다.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
class Person {
	private String name;
}


class Game {
	List<Person> person;
	Scanner sc;
	
	Game(){
		person = new ArrayList<Person>();
		sc = new Scanner(System.in);
		System.out.print("겜블링 게임에 참여할 선수 숫자 >> ");
		int num = sc.nextInt();
		for(int i=0; i<num; i++) {
			System.out.print((1+i)+"번째 선수 이름 > ");
		    String name = sc.next();
		   sc.nextLine();
		    person.add(new Person(name));
	}
}
	void game() {
	  int[] number = new int[3];
		for(int i =0 ;i<person.size(); i++) {
	    	System.out.println(person.get(i).getName()+": <Enter>");
			
		    for(int j =0; j<number.length; j++) {
		       number[j] = (int)(Math.random()*3)+1;
		    }
		     if(number[0]==number[1]) {
		       if(number[1]==number[2]) {
		    	 System.out.println(Arrays.toString(number) +" "+person.get(i).getName()+" 승리!" );	
		    	 }
		      } else System.out.println(Arrays.toString(number)+" "+person.get(i).getName()+" 아쉽군요!");	
	   }
			
	}
}

'국비 > 스터디' 카테고리의 다른 글

스터디1_인터페이스 설계도  (0) 2021.09.05

댓글