인프런 커뮤니티 질문&답변

cameobc님의 프로필 이미지
cameobc

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

10. 문자거리

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

작성

·

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

 

 

cameobc님의 프로필 이미지
cameobc

작성한 질문수

질문하기