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;
}
}
}
'1일 1백준' 카테고리의 다른 글
1일 1백준 : 7일차 1157번 단어 공부 (0) | 2022.04.25 |
---|---|
1일 1백준 : 7일차 2675번 문자열 반복 (0) | 2022.04.25 |
1일 1백준 : 4일차 11720번 숫자의 합 (0) | 2022.04.22 |
1일 1백준 : 3일차 11654번 아스키 코드 (0) | 2022.04.21 |
1일 1백준 : 2일차 1065번 한수 (0) | 2022.04.20 |