1일 1백준

1일 1백준 : 6일차 10809 알파벳 찾기

gaonhae 2022. 4. 24. 10:25

1일 1백준 6일차, 오늘 푼 문제는 10809번 문제인 "알파벳 찾기"이다.

 

 

 

 

 

 

문제 바로가기

https://www.acmicpc.net/problem/10809

 

 

 

 

어제 깜빡 잊고 문제 풀이를 하지 않았다

5일 만에 깜빡하다니.... 많이 반성하고 있다

앞으로 더 성실히 문제풀이를 하겠다

 

 

 

이번에도 별개의 함수를 구현하여 문제 풀이를 하였다

구현한 함수는 배열과 단어를 인자로 받고

배열의 값을 모두 -1로 초기화 한 뒤, 단어들의 알파벳 번째에 위치하는 배열의 값을 단어의 위치로 바꾸는 함수이다

if절을 이용해서 배열의 값이 이전에 바뀐 적이 있다면 건너뛰도록 설계하였다

 

 

 

 

 

 

 

 

 

 

 

아래로 내리면 정답 코드가 나옵니다. 문제를 아직 풀지 않으신 분들은 주의해주세요.

 

 

 

 

 

 

 

 

 

 

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Func f = new Func();

        int[] alphabet = new int [26];

        for(int i = 0 ; i < alphabet.length ; i++){
            alphabet[i] = -1;
        }

        String word = sc. nextLine();

        f.counter(alphabet, word);

        for(int i = 0 ; i < alphabet.length ; i++){
            System.out.printf("%d ",alphabet[i]);
        }

        sc.close();

    }
}

class Func{
    void counter(int[] arr, String word){
        for(int i = 0 ; i < word.length() ; i++){
            int num = ((int)word.charAt(i)) - 96;
            if(arr[num - 1] != -1){
                continue;
            }
            arr[num-1] = i;
        }
    }
}