SSONG Cloud
[SWEA] 7087 문제 제목 붙이기 본문
반응형
: N개의 제목이 주어지고 이 제목들은 A, B, C... Z가 순서대로 한번씩 등장하도록 하기 위해 해당 알파벳으로 시작하는 제목들이 하나 이상씩 있는지 확인한다.
: 주어진 N개로 만들 수 있는 제목의 개수를 알아내야한다.
: 주의할 점은 주어진 N개의 제목은 A, B, C,.. Z 순서대로 주어질 필요는 없지만 A 부터 제목을 붙일 때 중간에 하나라도 없으면 그 다음은 제목개수로 판단하지 않는다.
1. 테스트 케이스 수 (T)를 입력받는다.
2. titles라는 배열을 만드는데 이는 A부터 Z까지 시작으로 하는 제목들의 수를 카운팅 할 배열이다.
3. 해당 테스트 케이스의 주어지는 제목 개수 N을 입력 받는다.
4. 제목들을 줄바꿈 단위로 입력받고 해당 첫글자에 해당하는 titles 배열을 1씩 카운팅한다.
5. 제목들을 모두 입력받아 카운팅 한 후 카운팅 된 배열을 다시 순회하며 연속된 개수를 count에 저장한다.
6. 만약 중간에 끊기면 그 즉시 반복문을 종료하고 그 때까지 계산된 count가 답이 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws NumberFormatException, IOException {
int T = Integer.parseInt(br.readLine());
for(int tc = 1; tc <= T; tc++) {
int[] titles = new int['Z'-'A'+1];
int count = 0;
// N줄에 거쳐제목을 나타내는 문자열이 주어짐
int N = Integer.parseInt(br.readLine());
// 주어진 제목의 첫글자를 인덱스로 해서 카운팅함
for(int i = 0; i < N; i++) {
titles[br.readLine().charAt(0)-'A']++;
}
// 카운팅된 배열을 확인하면서 수가 0보다 크면 count를 1증가시키고 만약 0이면 반복문을 멈춤
for(int i = 0; i < titles.length; i++) {
if(titles[i] > 0) {
count++;
}else {
break;
}
}
sb.append("#" + tc + " " + count + "\n");
}
System.out.println(sb);
}
}
반응형
'Algorithm > SW Expert Academy' 카테고리의 다른 글
[SWEA] 3142 영준이와 신비한 뿔의 숲 (0) | 2021.02.14 |
---|---|
[SWEA] 5356 의석이의 세로로 말해요 (0) | 2021.02.12 |
[SWEA] 6692 다솔이의 월급 상자 (0) | 2021.02.11 |
[SWEA] 10804 문자열의 거울상 (0) | 2021.02.11 |
[SWEA] 5948 새샘이의 7-3-5 게임 (0) | 2021.02.10 |
Comments