[백준] 10809번 : 알파벳 찾기 - Java(자바)

이정우·2021년 9월 2일
0

백준

목록 보기
7/32

이번 문제는 알파벳으로 문자열 단어를 받은 후 a - z의 모든 알파벳과 비교해서 a - z 알파벳이 입력받은 알파벳 문자열에 존재한다면 해당 인덱스 번호를 불러오고 없으면 -1을 리턴하는 문제였습니다.

import java.util.Scanner;

public class Search_Alphabet {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		String alp = sc.next(); // 알파벳 입력 받기
		char abc; // 알파벳 유니코드 값 저장
		xx: for (int i = 97; i < 123; i++) { //라벨 생성
			abc = (char) i;
			for (int j = 0; j < alp.length(); j++) {
				if (abc == alp.charAt(j)) {
					System.out.print(j + " ");
					continue xx;  //라벨로 돌아가기.
				}
			}
			System.out.print(-1 + " ");
		}
	}

}

우선 저는 a의 유니코드가 97인걸 이용해서 첫 for문에서 i에 97을 줘서 a - z를 따로 입력하지 않고 for문으로 처리해줬습니다. 그 후 중복 for문을 사용해서 입력받은 알파벳인 alp에 a - z중 어떠한 알파벳이 존재한다면 해당 위치를 아웃풋 해주고 continue 라벨; 로 for문을 도중에 정지하고 다음 for문으로 넘어갔습니다. 여기서 label값이 없으면 if문에서 알파벳의 위치를 찾아도 마지막의 System.out.print(-1 + " ");가 실행되어서 -1이 무조건 찍혀서 label값을 주었습니다. 다른 분들 코드를 보니 for문안에 조건을 아예 a-z로 주거나 하는 방법을 사용시거나 아예 26개의 배열을 만들어두고 모두 -1을 넣은 다음 알파벳이 존재할 경우에만 덮어씌우거나 charAt을 이용하거나 여러 방법을 볼 수 있었습니다.

출처 : 백준 10809번 https://www.acmicpc.net/problem/10809

profile
프로그래밍 공부 중!

2개의 댓글

comment-user-thumbnail
2021년 9월 2일

제가 지금 스타트업 창업 준비중인데 저희 회사 취직하실 생각이 없으신가요? 제가 찾던 인재상과 너무 적합해서요!!

1개의 답글