강의

멘토링

커뮤니티

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

kangtak6291님의 프로필 이미지
kangtak6291

작성한 질문수

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

10번문제 (가장 짧은 문자거리)가 왜 틀렸는지 모르겠습니다.

작성

·

349

0

import java.util.Scanner;

public class Main {
public int getDistance(char[] word, int length, int idx, char ch) {
int i = 1;

if (word[idx] == ch)
return (0);

while (idx - i >= 0 && idx + i < length - 1){
if (word[idx - i] == ch || word[idx + i] == ch)
break;
else
i++;
}
return (i);
}
public String solution(String input, char ch) {
char[] word = input.toCharArray();
int length = word.length;
StringBuilder answer = new StringBuilder();

for (int i = 0; i < length; i++){
answer.append(getDistance(word, length, i, ch));
answer.append(' ');
}
answer.deleteCharAt(length * 2 - 1);
return (answer.toString());
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
System.out.println(T.solution(kb.next(), kb.next().charAt(0)));
}
}


왜 틀렸는지 모르겠습니다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

반례입니다. 

abcab c

위에 입력을 가지고 디버그해보세요. 

오답이 나오면 스스로 입력들을 만들어서 테스트해보셔야 합니다. 그래야 실전에서 통합니다.

kangtak6291님의 프로필 이미지
kangtak6291

작성한 질문수

질문하기