작심삼일을 넘어서서 4일차네요!
앞으로도 열심히 달려볼게요!!
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
이번 문제는 알고리즘 작성을 넘어갈게요..
해보려고 했는데 뭔가 마땅한 방법이 떠오르지 않아서 중구난방으로 푼듯 합니다..ㅠ
대충 설명을 해보면
group이라는 함수를 만들어서 char 배열과 char을 받아서 이 문자만 봤을 때, group이 되는지 안되는지를 return하게 했습니다.
그리고 main 함수에서 입력받은 string을 배열로 바꿔서 각각의 문자를 넣어서 group 함수를 다 돌려줬어요!
저도 설명하기가 좀 어렵네요..ㅠㅠ
항상 백준 글 논리정연 잘쓰시는 분들 넘 부럽고 대단해요..
오늘은 딱히.. 에피소드가 없어서 글 마무리 할게요!
아마 며칠 이사준비로 쉴 수도 있는데, 최대한 해보도록 하겠습니다 ㅎㅎ 화이팅!!🦾
작성 코드
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
45
46
|
import java.io.*;
public class B1316 {
public static boolean group(char[] in,char c) {
int index=-10;
for(int i=0;i<in.length;i++) {
if(in[i]==c) {
if(index==-10) {
index=i;
}
else if(index!=i&&i-index>1) {
index=-1;
break;
}
else index=i;
}
}
if(index==-1) return false;
else return true;
}
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(br.readLine());
int result=0;
for(int i=0;i<n;i++) {
boolean r=true;
char[] input=br.readLine().toCharArray();
for(int l=0;l<input.length;l++) {
r=group(input,input[l]);
if(!r) break;
}
if(r) result++;
}
System.out.println(result);
}
}
|
cs |
'PS 공부' 카테고리의 다른 글
[이것이 코딩테스트다 with 파이썬] chap4 구현. 왕실의 나이트 (1) | 2024.03.22 |
---|---|
백준 5일차 : 백준 2775번 부녀회장이 될테야 (0) | 2023.02.23 |
백준 3일차 : 백준 1003번 피보나치 함수 (0) | 2023.02.20 |
백준 2일차 : 백준 11866번 요세푸스 문제 0 (0) | 2023.02.19 |
백준 0일차 : 백준 2839번 설탕 배달 (java11) (0) | 2023.02.18 |