본문 바로가기

JAVA

자바 String 공백 처리, 빈도 계산 (백준 1152, 1157)

< 백준 1152번 단어의 개수 >

입력 : 영문 대소문자와 공백으로 이루어진 문장

출력 : 단어의 개수

먼저 문자열을 trim()하여 앞뒤 공백을 모두 없앤 후 남은 게 빈 문자열이면 0, 아니라면 단어의 개수를 출력한다.

import java.util.Scanner; 

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); 
		
		int count = 0;
		
		String s = sc.nextLine().trim();
		
		if(s=="")
			System.out.println(0);
		else{
			String l[] = s.split(" ");
			System.out.println(l.length);
		}
	}
}

 

< 백준 1157번 단어 공부 >

입력 : 영문 대소문자로 이루어진 단어

출력 : 가장 많이 사용된 알파벳을 대문자로 출력

toUpperCase() 함수를 이용해 모든 문자를 대문자로 바꾼 뒤 시작한다.

import java.util.*; 

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); 
		
		int idx = 0, max = 0;
		char cur;
		boolean same = false;
		
		int[] al = new int[26];
		Arrays.fill(al, 0);
		
		String s = sc.nextLine().toUpperCase();	//입력된 단어를 모두 대문자로 변경
		
		for(int i=0; i<s.length(); i++){
			cur = s.charAt(i);
			idx = (int)cur-65;
			
			al[idx]++;
		}
		
		for(int i=0; i<26; i++){
			if(al[i] == max)
				same = true;
			else if(al[i]>max){
				max = al[i];
				idx = i;
				same = false;
			}
		}
		
		if(same)
			System.out.println("?");
		else
			System.out.println((char)(idx+65));
	}
}