• 문제 링크
1342번: 행운의 문자열
민식이와 준영이는 자기 방에서 문자열을 공부하고 있다. 민식이가 말하길 인접해 있는 모든 문자가 같지 않은 문자열을 행운의 문자열이라고 한다고 한다. 준영이는 문자열 S를 분석하기 시작
www.acmicpc.net
• 풀이 과정
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
static int len, cnt;
static int[] arr = new int[26];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String s = br.readLine();
len = s.length();
for (int i = 0; i < len; i++)
arr[s.charAt(i) - 'a']++;
dfs(0, 0);
bw.write(String.valueOf(cnt));
bw.flush();
}
private static void dfs(int prev, int depth) {
if (depth == len) {
cnt++;
return;
}
for (int i = 0; i < 26; i++) {
if (arr[i] == 0 || (prev == i && depth != 0)) continue;
arr[i]--;
dfs(i, depth + 1);
arr[i]++;
}
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 11068 회문인 수 - Brute Force / Java (0) | 2023.07.20 |
---|---|
[백준] 17610 양팔저울 - Brute Force / Java (0) | 2023.07.19 |
[백준] 11502 세 개의 소수 문제 - Brute Force / Java (0) | 2023.07.17 |
[백준] 2659 십자카드 문제 - Brute Force / Java (0) | 2023.07.16 |
[백준] 14620 꽃길 - Brute Force / Java (0) | 2023.07.15 |
댓글