이 문제를 풀 때 로직을 제대로 생각하지 못했다.
아스키코드값을 이용, 함수로 구현, 연속된 문자인지 알기 위해 prev 변수 사용하는 것 까지 생각하지 못해 문제 푸는데 애를 먹었다.
처음엔 문자열 인덱스로 접근해야하나 싶었는데 아무리 생각해도 적절한 로직이 떠오르지 않았고 자꾸 산으로 가는 느낌이었다.
두 번째로는 함수로 처리할 생각을 못해서 반복문을 몇 개씩이나 계속 사용해야 되는 거 같아 시간복잡도가 너무 커져 적절하지 않다는 생각을 했다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static BufferedReader br;
static int number;
public static void main(String[] args) throws IOException {
br = new BufferedReader(new InputStreamReader(System.in));
number = Integer.parseInt(br.readLine());
int count = 0;
for(int i=0;i<number;i++) {
if(check()) {
count++;
}
}
System.out.println(count);
}
public static boolean check() throws IOException {
boolean[] check = new boolean[26];
String st = br.readLine();
char prev = ' ';
for(char c : st.toCharArray()) {
if(check[c - 'a']){
if(prev == c) {
continue;
}else {
return false;
}
}else {
check[c - 'a'] = true;
prev = c;
}
}
return true;
}
}
문자열 문제를 많이 안풀었더니 확실히 많이 까먹은 거 같다는 생각이 들었다. 또 알고리즘 문제 풀 때는 뭐랄까. 머리가 좀 굳는 느낌이다. 알고리즘 문제를 푼다하면 일단 겁부터 먹어서 그런 거 같기도하다.. 그래서 생각이 잘 안난다.
계속 꾸준히 풀어서 무서움을 좀 없애야겠다.
'알고리즘 문제풀이' 카테고리의 다른 글
백준 알고리즘 2869번 문제풀이(JAVA) (0) | 2021.09.17 |
---|---|
백준 알고리즘 1193번 문제풀이(JAVA) (0) | 2021.09.17 |
백준 알고리즘 2292번 문제풀이(JAVA) (0) | 2021.09.17 |
백준 알고리즘 1712번 문제풀이(JAVA) (0) | 2021.09.17 |
백준 알고리즘 2941번 문제풀이(JAVA) (0) | 2021.09.17 |