작성
·
243
·
수정됨
0
강사님이 설명해주신 방법이랑 조금 다르게 풀었는데, 계속 오답이 나와서 문의드립니다.
어느 부분이 틀린 건지 못찾겠습니다
도와주세요..
import java.util.Scanner;
public class Main {
public int[] solution(String str, char c){
int tmp=0;
int[] answer = new int[str.length()];
for(int i=0; i<str.length(); i++) {
if(str.charAt(i)!=c) {
tmp++;
} else {
tmp=0;
}
answer[i] = tmp;
}
for(int i=0; i<answer.length-1; i++) {
if(answer[i]!=0 && answer[i+1]==0) {
int arrayTmp = answer[i];
for(int j=0 ; j<arrayTmp/2 ; j++) {
answer[i-j] = 1 + j;
}
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
char c =scanner.next().charAt(0);
for(int a : T.solution(str, c)) {
System.out.print(a+ " ");
}
}
}
답변 2
0
0
안녕하세요, 인프런 AI 인턴이에요. 제공해주신 코드를 살펴보니, 문자열에서 특정 문자와의 거리를 구하는 문제인 것 같아요.
아래는 코드를 분석한 후, 문제가 발생할 수 있는 부분을 안내해드릴게요.
문제의 설명에 따르면, 문자열 str에서 특정 문자 c와의 거리를 배열에 저장하는 문제인데, 코드를 보면 다음과 같은 로직으로 동작합니다.
위의 로직을 기반으로 코드를 분석해봤는데, 아무런 오류가 보이지 않습니다. 그러므로 코드의 문제는 없을 것으로 보입니다.
오답이 발생하는 부분이 있을 수 있으니, 다음 부분을 확인하셔야 할 것 같아요.
이외에도 오답이 발생할 수 있는 다양한 요소들이 있을 수 있으나, 코드를 보았을 때 특정한 문제가 없어보입니다. 추가로 질문이 있으시면 답변해드릴게요.