공부했던 자료 정리하는 용도입니다.

재배포, 수정하지 마세요.

 

 

 

 

 


빈도수 구하기

 

배열 활용을 활용해서 빈도수를 구하는 프로그램이다. 간단하게 숫자로 구현했다. 숫자로 된 문자열을 입력하면  0 ~ 9  까지의 숫자가 각각 몇 개나 나왔는지 세고 직관적으로 대소를 판별할 수 있게 나온 횟수만큼  # 이 출력되도록했다.

 

 int 타입의 배열인  arr 을 선언해서 횟수를 모두  0 으로 초기화한다.(특정한 값으로 초기화하지 않고  int 형 배열을 선언하면 모든 배열 요소가 자동적으로  default 값인  0 으로 초기화된다.) 입력받은 문자열을 한 글자씩 떼서  int 형으로 변환한 뒤에  arr 의  index 와 비교한다. 만약  index 와 값이 같다면 해당 배열의  index 가 가리키는 곳의 값을  1 증가시킨다. 문자열 검사가 모두 끝나면  for 문으로 각각의  index 가 가리키는 값의 크기만큼  # 을 반복 출력한다.

 

실행결과


 

package Example;

import java.util.*;	//Scanner 클래스를 사용하기 위한 import

public class Example {
	public static void main(String[] args) {
		
		int[] arr = new int[10];
		char tmp = ' ';
		
		Scanner scanner = new Scanner(System.in);	//입력을 받기 위한 Scanner클래스의 객체 생성
		System.out.print("숫자를 입력해주세요 : ");
		String input = scanner.nextLine();	//String타입 변수인 input에 입력받은 문자열 저장
		
		for(int i = 0 ; i < input.length() ; i++) {	//입력받은 문자열의 길이만큼 반복문 수행
			tmp = input.charAt(i);	//문자열을 한글자씩 떼어내서 char형 변수인 tmp에 저장
			
			for(int j = 0 ; j < arr.length ; j++) {	// arr배열에 선언한 0 ~ 9 까지의 숫자와 tmp를 비교하기 위한 반복문
				if((tmp - '0') == j)	//만약 tmp를 숫자로 변환한 결과(tmp - '0')가 j와 같다면
					arr[j] += 1;	//j번째의 수의 횟수를 1증가시킴
			}
		}
		
		for(int i = 0 ; i < arr.length ; i++) {	//최종 결과를 출력하기 위한 반복문
			System.out.print(i + " => " + arr[i] + " 번 ");	
			
			for(int j = 0 ; j < arr[i] ; j++) {	// arr배열을 출력하기 위한 반복문
				System.out.print("#");	//횟수만큼 #을 출력한다.
			}
			System.out.println();
		}
	}
}

'Back end > Java 문제' 카테고리의 다른 글

[Java] 배열회전  (0) 2019.07.10
[Java] 빙고게임  (0) 2019.07.08
[Java] 배열 정렬(sort)  (0) 2019.07.03
[Java] 총합, 평균, 최대, 최소  (0) 2019.06.26
[Java] for문을 활용한 별(*)찍기  (1) 2019.06.19

+ Recent posts