쌓고 쌓다

[JAVA] 명품 자바 프로그래밍 6장 Open Challenge 본문

프로그래밍/java

[JAVA] 명품 자바 프로그래밍 6장 Open Challenge

승민아 2022. 5. 29. 23:02

소스 코드

import java.util.Scanner;


public class Extest{
	
    static String readString()
    {
    	StringBuffer sb = new StringBuffer();
    	Scanner scanner = new Scanner(System.in);
    	while(true)
    	{
    		String line = scanner.nextLine();
    		if(line.equals(";"))
    			break;
    		sb.append(line);
    	}
    	return sb.toString();
    }
	
	
	public static void main(String[] args) {
		
		int cnt[]= new int[26];
		
		String res = readString().toLowerCase();
		
		for(int i=0;i<res.length();i++)
		{
			if(res.charAt(i)>='a'&&res.charAt(i)<='z')
				cnt[(int)(res.charAt(i)-'a')]++;
		}
		
		for(int i=0;i<26;i++)
		{
			System.out.print((char)(i+'a'));
			for(int j=0;j<cnt[i];j++)
				System.out.print("-");
			System.out.println();
		}
		
	}

}

 

아스키코드를 이용해서 풀었습니다.

readString() 함수로 반환되는 String을 .toLowerCase() 메소드를 통해 소문자로 전부 바꾼뒤

각 알파벳에 해당하는 cnt의 인덱스에 +1을 해주었습니다.

a=0, b=1, c=2, .... , z=25입니다.

 

출력 결과

Comments