언어, 알고리즘 공부/백준
[백준 알고리즘] 1316번 그룹 단어 체커(Python 3, Java)
쿠몬e
2020. 2. 12. 17:41
<Python 3>
n = int(input())
result = 0
for i in range(n):
line = input()
a = {} # 빈 딕셔너리 생성
count = 0
for j in range(len(line)):
if line[j] in a and a[line[j]] == (j-1): #문자가 연속해서 나타날 경우
a[line[j]] = j
elif line[j] in a and a[line[j]] != (j-1): #문자가 연속하지 않을 경우
break
else: #문자가 딕셔너리에 없는 경우 딕셔너리에 추가
a[line[j]] = j
count += 1
if count == len(line):
result += 1
print(result)
<Java>
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int count = 0;
for(int i=0; i<n; i++){
int[] alpha = new int[26];
Arrays.fill(alpha, -1);
boolean check = true;
String word = br.readLine();
for(int j=0; j<word.length(); j++){
int idx = word.charAt(j)-'a';
if(alpha[idx] == -1 || alpha[idx] == (j-1))
alpha[idx] = j;
else{
check = false;
break;
}
}
if(check)
count++;
}
System.out.println(count);
}
}
▼링크
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때�
www.acmicpc.net
반응형