22.02.11 백준 10809번 문제

김민혁·2022년 2월 11일
0

하루한문제

목록 보기
2/22

문제

첫번째 제출한답

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String word = sc.next();
		int[] arr = new int[26];
		
		//배열 -1로 초기화
		Arrays.fill(arr, -1);
		
		
		for (int i = 0; i < arr.length; i++) {
			arr[i] = word.indexOf((char)(i+97));
		}
		
		for (int i = 0; i < arr.length; i++) {
			if(i!=25) {
				System.out.print(arr[i]+" ");
			} else {
				System.out.print(arr[i]);
			}
		}
		
	}
}

접근 -> 해당문자의 첫 출현위치를 구하려면 indexOf() 를 사용해야함
for문을 쉽게 돌리기 위해서 a~z의 아스키코드(97~122)로 indexOf를 돌림
결과-> 정답

총풀이시간 10분

추가

indexOf() 메소드의 리턴값은 해당 요소의 첫번째위치(인덱스)를
리턴하지만 해당요소가 없을때는 -1을 리턴한다!!
따라서 Arrays.fill을 사용하지 않더라도 결과는 동일하다!!

profile
안녕하세요 김민혁입니다.

1개의 댓글

comment-user-thumbnail
2022년 2월 11일

97이 생각이 안나면 char 변수명 = 'a'를 활용해도 된대요! 그러나 i랑 더해줬으니 다시 형변환은 해줘야 하겠지요!
https://devyoseph.tistory.com/43

답글 달기