โ ๋ฌธ์
์ ๋ ฅ๋ ๋ฌธ์ฅ์ ํฌํจ๋ ์ํ๋ฒณ์ ๋น๋๋ฅผ ๋์๋ฌธ์ ๊ตฌ๋ณ์์ด ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
โ ์ฝ๋
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("===== ์ํ๋ฒณ ๋น๋์ ๊ตฌํ๊ธฐ =====");
System.out.println("์
๋ ฅ >> ");
Scanner sc = new Scanner(System.in);
int[] result = new int[26];
String inPut = sc.nextLine().replaceAll(" ", "");
System.out.println(inPut);
String outPut = inPut.toLowerCase();
for (int i = 0; i < inPut.length(); i++) {
result[outPut.charAt(i) - 97]++;
}
for (int i = 0; i < 26; i++) {
System.out.println((char) (i + 97) + " : " + result[i]);
}
}
}
โ ์ถ๋ก ๊ณผ์
์ฃผ์ํ ์
1. CharAt() ๋ฉ์๋ ์ฐ๊ธฐ ์ํด์ ์ ๋ ฅ๋ ๋ฌธ์ฅ์ ๊ณต๋ฐฑ์ด ํฌํจ๋์ด ์์ ์ ์์ผ๋ ๊ณต๋ฐฑ์ ์์ ์ค์ผ ํจ
=> ์ฆ, " "์ ""๋ก ์นํํด์ค์ผ ํจ.
2. ๋ฌธ์ ์์ ๋์๋ฌธ์ ๊ตฌ๋ณ์์ด ์ํ๋ฒณ ๋น๋์๋ฅผ ๊ตฌํ๋ผ๊ณ ํ์ผ๋ฏ๋ก ๋ชจ๋ ์๋ฌธ์๋ก ์นํํ์ฌ ์ค๋ค.
3. ์์คํค์ฝ๋๋ฅผ ํ์ฉํด์ ํด๋น ์๋ฌธ์์ ์ํ๋ฒณ ์์๋ฅผ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํด์ ๋ฑ์ฅ ํ์๋ฅผ ์ธ์ด ์ค๋ค.
Scanner๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๋ก๋ถํฐ ๋ฌธ์์ด์ ์
๋ ฅ๋ฐ๋๋ค.
๊ธธ์ด๊ฐ 26์ธ ์ ์ ๋ฐฐ์ด result๋ฅผ ์์ฑํ๋ค. ์ด ๋ฐฐ์ด์ ๊ฐ ์ํ๋ฒณ์ด ๋ํ๋ ํ์๋ฅผ ์ ์ฅํด์ค๋ค.
์ฆ, ์ธ๋ฑ์ค 0๋ฒ๋ถํฐ a์ ๋น๋์, 26๋ฒ์ z์ ๋น๋์๋ฅผ ๋ด์์ค ๊ฒ์ด๋ค.
์ฌ์ฉ์๋ก๋ถํฐ ์
๋ ฅ๋ฐ์ ๋ฌธ์์ด์์ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ค.
replaceAll(" ", "") ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ฅ ์์ ๋ค์ด์๋ ๊ณต๋ฐฑ " "์ ""๋ก ์นํํด ์ค๋ค.
๊ทธ๋์ ๋ชจ๋ ์ํ๋ฒณ์ด ๋์ด์ฐ๊ธฐ ์์ด ๋ถ์ด์๊ฒ ๋๋ค.
toLowerCase()๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ๋ชจ๋ ๋ฌธ์์ด์ ์๋ฌธ์๋ก ๋ณํํ๋ค.
์ด๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ์ํ๋ฒณ์ ์นด์ดํธํ๊ธฐ ์ํด์์ด๋ค.
๋ฌธ์์ด์ ๊ธธ์ด๋งํผ ๋ฐ๋ณต๋ฌธ์ ๋๋ ค์ค๋ค.
for๋ฌธ ์์์ CharAt()๋ฉ์๋๋ฅผ ํตํด ์ ๋ ฅ๋ ๋ฌธ์ ํ๋ ํ๋๊ฐ ์ด๋ค ์ํ๋ฒณ์ธ์ง ํ์ธํ๊ณ ,
๊ฐ ๋ฌธ์๊ฐ ๋ฑ์ฅํ ํ์๋ฅผ result ๋ฐฐ์ด์ ์ ์ฅํ๋ค.
๋ฐฐ์ด ์ธ๋ฑ์ค์ ์ ๊ทผํด์ ์ํ๋ฒณ 'a'๋ถํฐ 'z'๊น์ง ๋ฐ๋ณตํ๋ฉด์ ๊ฐ ์ํ๋ฒณ๊ณผ ๊ทธ์ ํด๋นํ๋ ๋ฑ์ฅ ํ์๋ฅผ ์ถ๋ ฅํด ์ค๋ค.
์์ ์ฝ๋์์ outPut.charAt(i) - 97์ ํ๋ ์ด์ ๋ ๊ฐ ๋ฌธ์๋ฅผ ์๋ฌธ์๋ก ๋ณํํ ํ, 'a'๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ ์์น๋ฅผ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ์ฌ ํด๋น ์ํ๋ฒณ์ด ๋ฑ์ฅํ ํ์๋ฅผ ์ธ๊ธฐ ์ํด์์ด๋ค. ์์ด ์ํ๋ฒณ์ ์๋ฌธ์ 'a'๋ถํฐ ์์ํ์ฌ ์ฐ์์ ์ผ๋ก ์์คํค ์ฝ๋ ๊ฐ์ด ํ ๋น๋์ด ์๋๋ฐ, ์๋ฌธ์ 'a'์ ์์คํค ์ฝ๋ ๊ฐ์ 97์ด๊ณ , ๊ทธ ๋ค์ ์ํ๋ฒณ๋ค์ ๊ฐ๊ฐ 1์ฉ ์ฆ๊ฐํ๋ ๊ฐ์ด๋ค.
๋ฐ๋ผ์ ๊ฐ ๋ฌธ์์ ์์คํค ์ฝ๋ ๊ฐ์์ 'a'์ ์์คํค ์ฝ๋ ๊ฐ์ ๋นผ๋ฉด ํด๋น ๋ฌธ์๊ฐ ์ํ๋ฒณ 'a'๋ถํฐ ๋ช ๋ฒ์งธ ์์น์ ์๋์ง๋ฅผ ์์๋ผ ์ ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํด๋น ๋ฌธ์์ ์ํ๋ฒณ ์์๋ฅผ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํด์ ๋ฑ์ฅ ํ์๋ฅผ ์ธ๋ ์์
์ด ๊ฐ๋ฅํด์ง๋ค. ๊ทธ๋์ outPut.charAt(i) - 97์ ๋ฌธ์์ด์์ ์๋ฌธ์ 'a'๋ถํฐ ์์ํ์ฌ ๊ฐ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ ์ํ๋ฒณ์ธ์ง๋ฅผ ๋ํ๋ด๋ ์ธ๋ฑ์ค ๊ฐ์ ๋ฐํํ๋ค.