본문 바로가기
Problem Solving/SWEA

[SWEA] 7087. 문제 제목 붙이기

by 테리는당근을좋아해 2020. 2. 23.

문제

은기는 대회의 문제들에 사용할 수 있는 제목을 N개 만들었다.

자영이는 제목의 가장 앞 글자에 알파벳 대문자 A부터 시작하여, A, B, C, … , Z가 순서대로 한 번씩 등장하면 좋겠다고 하였다.

만약 도중에 특정 알파벳이 문제 제목의 맨 앞 글자로 등장하지 않으면 그 이후의 알파벳은 사용하지 않는다.

예를 들어, 문제 제목으로 Air, Dad, Ear, Blue, Ace가 있다면, A와 B는 등장하였지만, C는 등장하지 않았기 때문에 최대 2개의 문제 제목을 사용할 수 있는 것이다.

은기가 만든 문제들의 제목이 주어질 때, 자영이가 정한 규칙에 따라서 사용할 수 있는 최대 문제 제목의 개수를 계산하는 프로그램을 작성하라.

 

풀이방법

알파벳 대문자 갯수 크기의 배열을 선언하고 0으로 초기화한다.

 

각 문자열을 받을 때, 첫번 째 문자를 아스키코드 10진수 값으로 바꾸어 해당 인덱스에 1로 체크해준다.

 

모든 문자열을 읽어들이고 A부터 시작해서 0이 나타날때까지 1의 개수를 카운트한다.

 

소스코드

package samsung;

import java.util.*;

public class s_7087 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test = sc.nextInt();
		
		for(int t = 1; t <= test; t++) {
			int[] a = new int[35];
			int n = sc.nextInt();
			int cnt = 0;
			
			for(int i = 0; i < n; i++) {
				String s = sc.next();
				int tmp = s.charAt(0) - '0' - 17;
				a[tmp] = 1;
			}
			
			for(int i = 0; i < 35; i++) {
				if(a[i] == 0)
					break;
				cnt++;
			}
			System.out.println("#" + t + " " + cnt);
		}
	}
}

댓글