반응형
www.acmicpc.net/problem/10808 (level: Bronze II)
그동안 파이썬으로 꼼지락 대느라 자바에 대한 문법이나 감각이 좀 떨어져있는 것 같아서 쉬어가는 겸 가볍게 하나 풀어봤다. 1차원 배열과 아스키코드, charAt 메소드를 적절하게 사용해볼 수 있는 문제였다.
문제는 매우 간단하기 때문에 특별한 것은 없었고, 핵심은 아스키코드를 활용하는 것!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/* @date: 2021/05/05
* @author: psS2mj
* @brief: BOJ_10808_알파벳 개수 */
public class BOJ_10808_알파벳개수 {
static String S;
static int[] alphabet = new int[26];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
S = br.readLine();
for (int i = 0; i < S.length(); i++) {
alphabet[S.charAt(i) - 97]++;
}
for (int j = 0; j < 26; j++) {
System.out.print(alphabet[j] + " ");
}
} // main
}
처음에는 알파벳 배열 원소들의 카운트를 하나씩 증가시킬 때 사용할 idx라는 정수 변수를 하나 만드려고 했는데, 코드를 짜다 보니까 굳이 필요없겠다 싶어서 alphabet[S.charAt(i) - 97]++; 의 형태로 바로 써줬다.
그동안 파이썬으로 하느라 for문 같은건 다시 자바로 돌아왔을 때 좀 복잡하다고 느껴지긴 했지만… 그래도 파이썬은 1씩 증가시키는 연산을 할 때 cnt++를 사용할 수 없어서 cnt+=1와 같은 방법으로 증가시켜야 했는데, 자바는 EZ하게 alphabet[S.charAt(i) - 97]++; 의 형태를 사용할 수 있어 그건 편하다. 뭐든 장점이 있으면 단점이 있고, 단점이 있으면 장점이 있기 마련이나니…!😉
이 문제에서 기억할 건 아스키코드에서 A=65, a=97 그리고 charAt 메소드 정도!
감각 살리며 무난하게 3분컷 하고 넘어갑니다.
반응형
'🥇Problem Solving (psS2mj) > BOJ' 카테고리의 다른 글
[BOJ] 2839. 설탕 배달 (Java) (0) | 2021.05.05 |
---|---|
[BOJ] 11399. ATM (Java) (0) | 2021.05.02 |
[BOJ] 11721. 열 개씩 끊어 출력하기 (Java) (0) | 2021.05.02 |
[BOJ] 11047. 동전 0 (Java) (0) | 2021.05.02 |
[BOJ] 11399. ATM (Python3) (0) | 2021.04.23 |
댓글