• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

답이 맞는데 계속 오답으로 나와요...

22.04.27 22:33 작성 조회수 151

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

나르비님의 프로필

나르비

2022.05.24

제일 처음과 중간에 count 를 0으로 설정한 부분이  문제가 된 걸로 보입니다. 

강사님께서 설명해주신 것처럼  count 값을 100보다 큰 값으로 설정할 경우,
정상적으로 답을 도출할 수 있습니다. 

0

나르비님의 프로필

나르비

2022.05.24

입력 : 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