pullwall
Well done! 코딩
pullwall
전체 방문자
오늘
어제
  • 분류 전체보기 (151)
    • 개발환경 (2)
    • java study (21)
    • 백준 단계별 (51)
    • 알고리즘 (3)
    • AI (43)
    • 클라우드 (3)
      • Kubernetes in Google (3)
    • 논문 (5)
    • 리눅스 (1)
    • AWS (4)
    • 수학 (15)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 단계별
  • 쿠버네티스
  • 수학
  • Google
  • 정렬
  • LLM
  • 논문리뷰
  • dataset
  • 선택정렬
  • AWS
  • pytorch
  • 자바
  • 백준
  • Kubernetes
  • Ai
  • 알고리즘
  • 백준 단계별
  • 자바독학
  • Java
  • 정렬알고리즘

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
pullwall

Well done! 코딩

백준 단계별

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

2023. 1. 13. 15:32
728x90
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int[] arr = new int[26];
		
		for(int i=0;i<arr.length;i++) {
			arr[i] = -1;
		}
		
		String a = sc.nextLine();
		
		for(int i=0;i<a.length();i++) {
			char ch = a.charAt(i);
			
			if(arr[ch-'a']==-1) {
				arr[ch-'a']=i;
			}
		}
		
		for(int val : arr) {
			System.out.print(val + " ");
		}
	}
}

우선적으로 알파벳갯수인 26을 크기로 가지는 정수 배열을 -1로 초기화한다.

 

이후 검사할 문자열을 받아오고

 

앞에서부터 한 글자씩 뜯어볼 것이다.

 

정수 배열에서 뜯어볼 글자에 해당하는 인덱스 데이터가 -1이라면 i로 초기화한다.

이 과정이 알파벳이 i번째에 있다고 표기하는 과정이며

알파벳 갯수에 맞게 정수 배열을 선언했기 때문에 beakjoon에서 o가 2번 있어도 두번째 o를 만났을 때는

o에 해당하는 인덱스에 i가 저장되어 있기 때문에 if문을 실행하지 않는다.

따라서 자연스럽게 처음 만난 위치만 저장되게 된다.

 

if문 안의 -'a' 도 마찬가지로 arr이 정수형이기 때문에

이를 통해야만 알파벳에 해당하는 아스키 코드 숫자를 사용할 수 있다.

728x90

'백준 단계별' 카테고리의 다른 글

[Java] 백준 1152: 단어의 개수  (0) 2023.01.17
[Java] 백준 2675: 문자열 반복  (0) 2023.01.17
[Java] 백준 11720: 숫자의 합  (0) 2023.01.13
[Java] 백준 11654: 아스키 코드  (0) 2023.01.13
[Java] 백준 1065: 한수  (0) 2023.01.12
    '백준 단계별' 카테고리의 다른 글
    • [Java] 백준 1152: 단어의 개수
    • [Java] 백준 2675: 문자열 반복
    • [Java] 백준 11720: 숫자의 합
    • [Java] 백준 11654: 아스키 코드
    pullwall
    pullwall

    티스토리툴바