작성
·
217
0
어디가 잘못된 건지 한 번 봐주실 수 있으신가요?
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String next = sc.next();
char c = sc.next().charAt(0);
for(int x : solution(next, c)){
System.out.print(x + " ");
}
}
public static int[] solution(String s, char c){
int[] answer = new int[s.length()];
//오른쪽으로 돌 거
int [] right = new int[s.length()];
//왼쪽으로 돌 거
int[] left = new int[s.length()];
int count = 0;
for(int i =0; i<s.length(); i++){
if(s.charAt(i) != c){
count++;
}else{
count = 0;
}
answer[i] = count;
}
count = 0;
for(int i = s.length()-1; i >=0; i--){
if(s.charAt(i) != c){
count++;
}else{
count = 0;
}
if(count < answer[i]){
answer[i] = count;
}
}
return answer;
}
답변 2
2
제일 처음과 중간에 count 를 0으로 설정한 부분이 문제가 된 걸로 보입니다.
강사님께서 설명해주신 것처럼 count 값을 100보다 큰 값으로 설정할 경우,
정상적으로 답을 도출할 수 있습니다.
0
입력 : fkdgkjdflkgjljslgjkfldjlkfdg f
오답 : 0 1 2 3 3 2 1 0 1 2 3 4 5 6 5 4 3 2 1 0 1 2 3 2 1 0 1 1
정답 : 0 1 2 3 3 2 1 0 1 2 3 4 5 6 5 4 3 2 1 0 1 2 3 2 1 0 1 2
입력 : eochjgoekghlakegh h
오답 : 1 2 1 0 1 2 3 3 2 1 0 1 2 3 2 1 0
정답 : 3 2 1 0 1 2 3 3 2 1 0 1 2 3 2 1 0