Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JDoodle
- 일관성
- StringBuilder
- vscode
- 생활코딩
- Repository
- outfitanyone
- JAVA 설치
- mobaXterm
- reverse()
- Generic
- StringTokenizer
- redis
- 다이얼
- prettier
- Component
- Service
- 가독성
- 백준 문자열
- 문자열
- 백준
- Controller
- SPLIT
- RestController
- 런타임에러
- 생성형AI
- 문자열 반복문
- spring
- Java
- putty
Archives
- Today
- Total
gone
#[백준] 10809 알파벳찾기 본문

제출1)
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main2 {
public static void main(String[] args) throws Exception {
// 알파벳 위치를 기록하기 위한 배열
int[] arr = new int[26];
// 포함되지않으면 -1 로 기록해야하므로, 모두 -1로 초기화
for(int i=0; i<arr.length; i++){
arr[i] = -1;
}
// 입력값
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String S = br.readLine();
for(int i=0; i<S.length(); i++) {
// System.out.println(S.charAt(i) - 'a'); // 아스키코드
int n = S.charAt(i) - 'a';
if (arr[n] < 0) {
arr[n] = i;
}
}
for(int a: arr) {
System.out.print(a + " ");
}
}
}
1. 입력받은 값의 알파벳이 존재 하지 않을 경우 -1로 출력
임의의 알파벳 크기의 배열을 생성해서 우선 모두 -1로 초기화 한다.
for(int i=0; i<arr.length; i++){
arr[i] = -1;
}
2. 알파벳 순서 값 찾기
알파벳의 순서를 알기 위해서 아스키코드를 이용하였다.
'a' 의 아스키코드 값은 97이다. 따라서 [소문자알파벳] - 'a' 를 하면 알파벳의 순서를 쉽게 알 수 있다.
int n = S.charAt(i) - 'a';
3. 현재 입력한 값의 알파벳 위치값은 i가 가지고 있다.
arr[n] = i;
4. 같은 알파벳은 처음등장한 초기 알파벳위치값을 저장한다.
if (arr[n] < 0) {
arr[n] = i;
}
'알고리즘' 카테고리의 다른 글
| #[백준] 2675 문자열 반복 (StringBuilder 클래스) (0) | 2024.01.11 |
|---|---|
| #[백준] 11720 숫자의 합 (1) | 2024.01.11 |
| #[백준] 11654 아스키 코드 (2) | 2024.01.10 |