풀이 방법
입력이 어떻게 주어지는지 생각하는 데 시간이 좀 걸렸다.
입력은 무조건 5의 배수의 길이로 주어지지 않고 5의 배수의 길이로 주어졌더라도 오리의 울음소리를 만들 수 있게 딱 나누어 떨어지지 않았다.
- 녹음한 소리가 올바르지 않은 경우
- 입력이 5의 배수의 길이로 주어지지 않은 경우
- 울음 소리를 만들 수 있게 딱 나누어 떨어지지 않은 경우
이 세가지를 생각해서 풀이했다.
내 코드
package com.company;
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int cnt = 0;
int[] arr = new int[5];
if (s.length() % 5 == 0) {
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'q') {
arr[0]++;
if (cnt != 0)
cnt--;
} else if (s.charAt(i) == 'u') {
arr[1]++;
if (arr[0] < arr[1]) {
cnt = -1;
break;
}
} else if (s.charAt(i) == 'a') {
arr[2]++;
if (arr[1] < arr[2]) {
cnt = -1;
break;
}
} else if (s.charAt(i) == 'c') {
arr[3]++;
if (arr[2] < arr[3]) {
cnt = -1;
break;
}
} else if (s.charAt(i) == 'k') {
arr[4]++;
cnt++;
if (arr[3] < arr[4]) {
cnt = -1;
break;
}
}
}
for (int i = 0; i < 5; i++) {
if(cnt == -1)
break;
for (int j = i + 1; j < 5; j++) {
if(arr[i] !=arr[j]){
cnt = -1;
break;
}
}
}
System.out.print(cnt);
} else {
System.out.print(-1);
}
}
}
'코딩테스트 > [백준] 코딩테스트 연습' 카테고리의 다른 글
색종이와 가위 - 20444번 (0) | 2021.10.25 |
---|---|
네트워트 연결 - 1922번 (0) | 2021.10.22 |
운동 - 1956번 (0) | 2021.10.21 |
이동하기 - 11048번 (0) | 2021.10.19 |
벽 부수고 이동하고 - 2206번 (0) | 2021.10.15 |