Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- nodemon
- docker-compose
- GORM
- Delete
- Container
- db
- bash
- kubernetes
- k8s
- NGINX
- GitHub
- kubernetes #container
- ansible
- time_zone
- node
- 쿠버네티스
- vscoe
- ubuntu
- kubespray
- linux
- mariadb
- docker install
- regexp
- go
- kube
- golang
- docker
- Git
- npm
- html
Archives
- Today
- Total
Deve.haeri
[Java/연습문제] 빈도수 그래프 출력하기 본문
1. 문제 설명
- 0~9 사이 난수를 발생하여, 생성 횟수만큼 그래프를 출력한다.
2. 소스 코드
package ex03_array_quiz;
public class Quiz08 {
public static void main(String[] args) {
//문제. 0에서 9사이 난수를 100개 생성하고, 각 숫자들의 생성 횟수(빈도수)를 그래프화 하여 출력하시오.
//실행 예)
// 0 : ##### 5
// 1 : ### 3
//100개 랜덤 저장 a배열
// | 5 | 4 | 0 | 7 |
// a[0] ~ a[99] : 0~9
// 10개 요소를 가지는 counter 배열
// counter[0] : 7 (0이 7개)
// counter[1] : 5 (1이 5개)
int [] a = new int[100];
int [] counter = new int[10];
//100개 랜덤 생성
for(int i=0; i<a.length; i++) {
a[i] = (int)(Math.random()*10);
counter[a[i]] ++;
}
//counter 배열에 인덱스 a[i] 요소를 증가
for (int i =0 ; i < counter.length; i ++) {
String graph = "";
//counter[i] 만큼 # 이어 붙이기 반복
for(int j=0; j<counter[i]; j++) {
graph +="#";
}
System.out.println(i + " : " + graph+ " " +counter[i]);
}
}
}
3. 문제 해결 방법
1) 100개의 난수가 저장될 배열 a와 생성 된 난수의 횟수를 저장할 배열 counter를 생성한다.
2) a배열의 크기 (100) 만큼 난수를 생성한다.
3) 같은 수의 난수가 발생하면 그 수를 가진 counter배열 인덱스의 수를 증가한다.
ex) 난수 3 발생 -> counter[3] 값 증가 -> 난수 3 또 나옴 -> counter[3] 증가
4) counter 배열의 각 인덱스에 저장된 수만큼 #을 생성한다.
- 처음 string을 초기화 하고, 배열의 크기만큼 for문을 사용해서 #을 저장한다.
4. 결과
'Quiz > 04.Array' 카테고리의 다른 글
[Java/연습문제] 구구단을 2차원 배열에 저장하고 출력하기 (0) | 2020.10.31 |
---|---|
[Java/연습문제] 2차원 배열 출력하기 (0) | 2020.10.31 |
[Java/연습문제] 윷던지기 게임하기 (0) | 2020.10.27 |
[Java/연습문제] 키를 입력 받은 후 가장 큰 키를 가진 사람 출력하기 (0) | 2020.10.27 |
[Java/연습문제] 점수 입력 받아 최고/최저/평균 점수 구하기 (0) | 2020.10.14 |
Comments