코드를 이렇게 작성하면 문제가 될까요?
public class GetMinimumDistance {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.next();
char ch = in.next().charAt(0);
System.out.println(getMinimumDistance(str, ch));
return;
}
public static String getMinimumDistance(String str, char ch) {
List<Integer> distanceList = new ArrayList<Integer>();
for(int i = 0; i < str.length(); i++) {
String beforeStr = str.substring(0, i);
StringBuilder sb = new StringBuilder(beforeStr);
beforeStr = sb.reverse().toString();
String afterStr = str.substring(i);
int beforeDistance = beforeStr.indexOf(ch) + 1;
int afterDistance = afterStr.indexOf(ch);
if(beforeStr.length() == 0 || beforeDistance == 0) beforeDistance = Integer.MAX_VALUE;
if(afterStr.length() == 0 || afterDistance == -1) afterDistance = Integer.MAX_VALUE;
distanceList.add(beforeDistance < afterDistance ? beforeDistance : afterDistance);
}
String answer = "";
for (int dis : distanceList) {
answer += Integer.toString(dis) + " ";
}
return answer.substring(0, answer.length() - 1);
}
}
혹시 이렇게 작성하면 답은 맞는데 고쳐야 할 부분이라든가 있을까 고수님들 확인 부탁드립니다 ㅠㅠ
너무 비효율적으로 짠거 같아서요 ㅠㅠ
답변 2
0
안녕하세요^^
매 문자마다 해당 문자의 위치에서 왼쪽으로 indexOf, 오른쪽으로 indexOf해서 두 리턴값 중 작은 값을 거리로 택한 아이디어가 좋습니다. 보통 이런 생각을 쉽게 할 것 같지만 사실 이런 생각을 해내는 것이 쉽지 않고 구현하는 것도 쉽지 않습니다. 잘 하신 코드입니다.
영상의 방법도 잘 익혀두세요.
0
안녕하세요, 인프런 AI 인턴이에요.
주어진 코드를 보면, getMinimumDistance 메소드가 해당 문자열에서 주어진 문자와의 최소 거리를 구하는 기능을 가지고 있습니다. 코드 자체는 문제가 없어 보입니다.
그러나, 몇 가지 개선할 점이 있을 수 있습니다. 첫째로, 문자열 거리를 구하는 과정에서 반복문이 사용되고 있습니다. 이를 개선하기 위해 StringBuilder와 reverse 메소드를 사용할 수 있습니다. 두 번째로, 문자열을 구성하기 위해 String을 사용하고 있습니다. 이는 매번 새로운 문자열을 생성하기 때문에 성능 저하의 원인이 될 수 있습니다. 대신 StringBuilder를 사용해 문자열을 구성하면 성능이 개선될 수 있습니다.
또한, 코드를 좀 더 가독성 있게 작성하기 위해 약간의 수정이 필요합니다. 변수명을 좀 더 명확하게 지어주고, 각 단계마다 주석을 추가하는 것이 좋습니다.
이러한 개선 사항을 고려하여 코드를 수정하면 좋습니다. 하지만 현재 코드에서는 문제가 발생하거나 잘못된 결과가 나올 가능성은 보이지 않습니다.
더 나은 코드를 작성하는 방법에 대해 추가적인 정보가 필요하다면 언제든지 물어보세요. 즐거운 프로그래밍 되세요~!
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
29
1
갑자기 채점 사이트가 바뀌었어요
0
32
1
문제 리스트 페이지
0
29
1
채점 사이트 관련 질문드립니다
0
24
1
봉우리 문제 질문입니다
0
81
2
씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?
0
65
0
이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?
0
72
0
가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법
0
67
1
좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ
0
85
2
6-7 강의에서
0
48
1
6-6. 장난꾸러기 질문 있습니다.
0
45
1
강의 수강후 코딩테스트
0
110
1
answer 변수 사용 여부
0
45
1
2중 for문
1
85
2
2-11. 임시반장정하기 (Runtime Error)
0
63
1
혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?
0
70
1
이런 풀이는 어떨까요
0
44
1
자바 스트림 방식의 효율성 질문 드립니다.
0
57
1
알고리즘 자료 구조들..
0
62
1
StringBuilder vs BufferdWriter
0
48
1
원더랜드(프림)
0
50
1
이런 코드는 어떤가요?
0
61
1
bfs 풀이
0
57
1
병합정렬
0
56
1





