본문 바로가기
백준

[백준] 단계별로 풀어보기(단계:7,문자열,JAVA)10809번, 알파벳 찾기

by 열정적인 이찬형 2021. 12. 19.

문제 링크

10809번: 알파벳 찾기
 
www.acmicpc.net

주의사항

  • JAVA를 사용하여 프로그램을 사용하였습니다.
  • 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{ 	
	public static void main(String[] args){
    }
}

문제 설명


접근 방법

  • BufferedReader를 사용하여 입력값을 저장합니다.
  • 소문자 알파벳 개수인 26 크기의 배열을 만들어서 -1로 초기화를 진행하였습니다.
  • 소문자 알파벳 아스키 코드가 97부터 시작하므로 각 글자를 받아서 97를 빼주어서 무슨 글자인지 확인하였습니다.
  • -1이 아니면 앞에 위치에 있다고 판단하여 -1인 경우에만 배열에 저장하였습니다.
  • 배열에 들어있는 값을 bw에 저장하여 결과를 한 번에 출력하였습니다.

결과 코드

import java.io.*;
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //입력 값을 받는 BufferedReader
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        //결과를 출력하는 BufferedWriter
        String text = br.readLine();		//입력값 저장
        int[] arr = new int[26];		//알파벳 위치 배열
        for(int i=0;i<26;i++) {			//배열 -1로 초기화
        	arr[i] = -1;
        }
        for(int i=0;i<text.length();i++){	//알파벳 위치 구하여 저장
        	int temp = text.charAt(i)-97;
          if(arr[temp]==-1){
        	  arr[temp]=i;
          }
        }
        for(int i=0;i<26;i++) {			//알파벳 위치 값들 bw에 저장
        	bw.write(arr[i] + " ");
        }
        bw.flush();				//결과 출력
        bw.close();
        br.close();
    }
}

댓글