Algorithm/[BOJ]

[Java] 백준 10809번 : 알파벳 찾기

정보통신 고심이 2023. 12. 7. 19:46

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

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

 

아직 너무 어려운 문자열 문제

나는 문제를 너무 어렵게 생각하는거 같다

 

 

 

처음 접근법 

더보기
  1. 문자열을 입력 받는다.
  2. 입력 받는 문자열을 한글자씩 쪼개서 위치 파악 0번~S.lenth
  3. 문자 위치를 저장하는 배열에 각 문자 위치를 저장
  4. 반복문으로 저장한 위치 배열 출력 

 

 

0부터니까 배열에 저장? 배열 번호 출력?

해당 문자가 없으면 -1 출력 

 

아스키 코드를 쓸까?

String은 문자열이고 char은 문자 하나니까 

 

String을 입력받아서 char로 변환

 

for(int i=0; i<arr.length; i++){

for(int j=0; j<i; j++)

if[arr[i] = arr[j];

문자열 순서대로 있는 배열을 생성 

arr[0]  / arr[1]  / 

a 위치/ b 위치 

 

count++

 

for 반복문으로 arr출력 

 

 

문자열을 나누는 방법

split(“ “) X

SubString X

toCharArray 사용하는 듯!

 

toCharArray란..

문자열을 각각의 문자로 분할하려면, toCharArray() 메소드를 사용할 수 있습니다. 이 메소드는 문자열을 문자 배열로 변환

 

 

오답 코드 입니다. 

1. 배열 1 : 입력받은 문자열을 저장

2. 배열2 : 알파벳 a~z까지 있는 것

 

반복문으로 두 배열을 비교해서 index값을 출력하는 방식으로 풀려고 했는데 뭔가 잘 안됐다

package test;
import java.io.*;

public class Main {
	
	
	public static void main(String[] args)throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		String S = br.readLine();
		char[] arr = S.toCharArray();
		char[] alpha ; // 알파벳 a~z 까지 있 것 
		
		int location = 0;
		
        for (int i = 0; i <arr.length; i++) {
           if (arr[i] ;
           	location = i;
        }
		
        // 저장한 알파벳 배열을 출력 
		for(int i=0; i<arr.length; i++) {
			
			bw.write(String.valueOf(count));
		}
		
		bw.flush();
		bw.close();
	}
}

 

 

배열 값 출력 -> indexOf 

아스키코드