2013년 7월 1일 월요일

(130701) 6일차 ScannerTest2.java ( 6일차 3교시 문제 - 입력받아서 최대 빈도수 출력 풀이)

 - 소스
import java.io.*;
import java.util.*;

public class ScannerTest2 {

public static void main(String[] args) {

Scanner sc;
try {
sc = new Scanner(System.in);
//한라인씩 읽어드림
String linedata = sc.nextLine();

StringTokenizer st =new StringTokenizer(linedata," ");
System.out.println(st.countTokens());


String [] result = new String[st.countTokens()];
int k=0;
while(st.hasMoreTokens()){
result[k]=st.nextToken();
k++;
}

//하나의 배열번지를 기준으로 모든 배열을 검색하는 소스
int max=0; // 최대 빈도수를 의미
String word ="";//가장 많이 나오는 단어

for (int i = 0; i < result.length; i++) {

int count =0; // 반복문 한번 돌때마다 값을 초기화 해줌
for (int j = 0; j < result.length; j++) {

if(result[i].equals(result[j])){
//단어와 단어가 같다면 카운트를 증가
count++;
}

}
//하나를 전부 반복한후에 count값이 max값보다 크다면
if(max < count){

max= count;
word=result[i];
}   
}

System.out.println("최대 빈도 단어는 " +word +"이고 반복횟수는 "+max);

} catch (Exception e) {
e.printStackTrace();
}
}
}


 - 결과