반응형
문제
package kr.or.ddit.homework;
public class HomeWork19 {
public static void main(String[] args) {
HomeWork19 hw = new HomeWork19();
hw.process();
}
public void process() {
/*
* 주사위 히스토 그램을 배열 사용 x.
* 리스트 혹은 맵으로 구현해보기.
*/
}
}
정답
package kr.or.ddit.homework;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;
public class HomeWork19 {
public static void main(String[] args) {
HomeWork19 hw = new HomeWork19();
hw.process();
}
private String integer;
public void process() {
/*
* 주사위 히스토 그램을 배열 사용 x.
* 리스트 혹은 맵으로 구현해보기.
*/
Scanner sc = new Scanner(System.in);
System.out.println("주사위를 몇 번 던지겠습니까?");
int number = sc.nextInt();
System.out.println();
Map<Integer, Integer> resultMap = rollDice(number);
printHistoGram(number);
}
public int oneDice() {
return new Random().nextInt(6)+1;
}
public int throwTwoDice() {
return oneDice() + oneDice();
}
public Map<Integer, Integer> rollDice(int num) {
Map<Integer, Integer> resultMap = new HashMap();
for(int i=0; i<num; i++) {
int dice = throwTwoDice();
int count = 1;
if(resultMap.containsKey(dice)) {
count += resultMap.get(dice);
}
resultMap.put(dice, count);
}
return resultMap;
}
// 프린트
public void printHistoGram(int num) {
Map<Integer, Integer> result = rollDice(num);
for(int i=2; i<12; i++) {
int count = result.get(i);
System.out.print(i + "\t");
for(int j=0; j<count*100/num; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
반응형
'자바' 카테고리의 다른 글
[Java 초급] 24장 MVC 패턴2 : 게시판 만들기1 (0) | 2024.01.04 |
---|---|
[Java 초급] 23장 MVC 패턴1, 회원가입 (2) | 2024.01.03 |
[Java 초급] 22장 JDBC Utility 클래스 (0) | 2024.01.02 |
[Java 초급] 21.5장 테스트 (0) | 2023.12.30 |
[Java 초급] 21장 컬렉션 프레임워크 (0) | 2023.12.30 |