728x90
반응형
https://www.acmicpc.net/problem/10808
이 문제는 나의 짧은 알고리즘 지식으로 인해 푸는데 시간만 엄청 걸렸는데
일단 문제를 보고 내가 구현하고자 했던 것은
1. 배열을 만들어 알파벳을 a~z까지 넣는다.
2. 스캐너를 활용해서 객체 s에 있는 단어를 한글자씩 쪼개어 배열에 있는지 for문으로 검사하고 있으면 1, 없으면 0출력
대충 이런식으로 하고 싶었음
근데 한 글자씩 쪼개고 for문 돌리는거 맞나? 이러다가 모르겠다로 되버림
1번만 완성,,,
String[] alphabet = new String[26];
char currentChar = 'a';
for(int i=0; i<26; i++){
alphabet[i] = String.valueOf(currentChar);
currentChar++;
}
근데 어떻게 쓰일 수 있을까... 일단 아님 나중에 다른 방법으로도 생각해보고 풀이해봐야겠다
정답 코드:
import java.util.Scanner;
public class boj10808_2 {
public static void main(String[] args) {
// 알파벳의 등장 횟수를 저장할 배열 (a부터 z까지 26개)
int[] result = new int[26];
// 입력으로 받은 문자열을 문자 배열로 변환
char[] temp = scan.next().toCharArray();
// 각 문자에 대해 알파벳 등장 횟수 계산
for (int i = 0; i < temp.length; i++) {
// 각 문자에 대해 알파벳 'a'의 ASCII 코드 값(97)을 뺀 결과를 이용하여
// 알파벳 'a'부터 'z'까지의 인덱스로 매핑
int index = temp[i] - 97;
// 해당 인덱스에 대응하는 배열 요소(알파벳의 등장 횟수) 증가
result[index]++;
}
// 각 알파벳의 등장 횟수를 출력
for (int i = 0; i < result.length; i++) {
System.out.print(result[i] + " ");
}
}
}
728x90
반응형
'Algorithm' 카테고리의 다른 글
[백준/JAVA] 럭비클럽 boj2083 (0) | 2024.03.07 |
---|---|
[백준/JAVA] 상근날드 boj5543 (1) | 2024.01.24 |
[백준/java] R2 3046번 (0) | 2024.01.21 |
[백준/java]빠른 A+B 15552번 (0) | 2024.01.18 |
[백준/java]문자와 문자열 27866번 (0) | 2024.01.12 |