C#/백준 알고리즘
2022.01.25 [백준] C# 그룹 단어 체커
ian's coding
2022. 1. 25. 02:18
728x90
반응형
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
using System;
class Program{
static void Main(){
int n = int.Parse(Console.ReadLine());
int sum=0;
for(int i=0;i<n;i++){
//문장에서 알파벳의 사용유무를 확인할 bool형 배열
//문장에서 사용 되었으면 true로 선언.
bool[] check = new bool[26];
string str=Console.ReadLine();
for(int j=0;j<str.Length;j++){
//배열의 마지막에서 j와j+1을 비교하면 OutOfRange오류가 발생하므로
//범위를 j<str.Length-1로 해줌
if(j<str.Length-1){
//j,j+1 번째의 알파벳이 같으면 continue를 이용해 통화시켜줌
if(str[j]==str[j+1])
continue;
//j,j+1 번째의 알파벳이 다를 때, 해당 알파벳 위치의 check가 true면
//그룹 단어가 아니므로 break로 반복문을 나감.
//check가 true가 아니면 해당str[j]에 해당하는 알파벳이 이전에
//사용되지 않았기 때문에 해당 알파벳 위치의 check를 true로 선언
if(str[j]!=str[j+1]){
if(check[str[j]-'a'])
break;
else{
check[str[j]-'a']=true;
}
}
}
//배열의 마지막인 j일때 해당 알파벳 위치의 check가 true면 그룹 단어가
//아니기 때문에 break;
//마지막 문자엣 check가 true가 아니면 이 문자열은 그룹 문자이므로 sum++;
if(j==str.Length-1){
if(check[str[j]-'a']){
break;
}else{
sum++;
}
}
}
}
Console.Write(sum);
}
}
|
cs |
check[] 여기서 괄호안에 char형을 쓰면 int형으로 변환하지않도 됨.
728x90
반응형