백준[Java] - 알파벳 찾기

이새봄·2022년 9월 20일

코딩 연습

목록 보기
11/14

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner sc = new Scanner(System.in);
		
		int arr [] = new int [26];
		
		for(int i = 0; i<arr.length; i++) {
			arr[i] = -1;
		}
		
		String S = sc.nextLine();
		
		for(int i = 0; i<S.length(); i++) {
			char ch = S.charAt(i);
// length는 상수이고 length()는 메소드
// 배열에서 사용 가능한 length는 최초 배열이 생성 될 때 길이가 결정 되는 상수
// String의 length() 메소드는 호출 될 때 (가변적) 문자의 길이를 결정하는 변수
			
			if(arr[ch - 'a'] == -1) {
				arr[ch - 'a'] = i;
			}
		}
		
		for(int a : arr) {
			System.out.print(a + " ");
		}
	}
}

먼저 26개의 크기로 배열을 만든다. (알파벳이 26개니까)
모두 -1로 초기화
문자열을 입력받고
문자열의 문자 하나하나를 뽑아낸다.
그 문자가 a라면 'a'를 -해야 0이 된다. 배열의 처음은 0이니까
b라면 1이 되고 c라면 2가 되고...
그렇게 돌리는데 그 값이 -1일 때만 해당 자리수가 들어가도록 해야한다.
그 문자가 처음 나왔을 때의 자리를 넣어야 하니까~~

0개의 댓글