문제
은기는 대회의 문제들에 사용할 수 있는 제목을 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);
}
}
}
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA] 2817. 부분 수열의 합 (0) | 2020.02.23 |
---|---|
[SWEA] 7102. 준홍이의 카드놀이 (0) | 2020.02.23 |
[SWEA] 6913. 동철이의 프로그래밍 대회 (0) | 2020.02.23 |
[SWEA] 6730. 장애물 경주 난이도 (0) | 2020.02.23 |
[SWEA] 6692. 다솔이의 월급 상자 (0) | 2020.02.23 |
댓글