작성
·
122
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
자바로 작성해서 예제는 맞게 나오는데, 제출하니까 틀렸다고 나옵니다. 어디가 잘못 된걸까요??
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] argvs) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int[] num = new int[n+1];
int[] st = new int[n+1];
for(int i=1; i<=n; i++)num[i]=sc.nextInt();
int k=sc.nextInt();
for(int i=1; i<=n; i++) st[i] = num[i];
Arrays.sort(st);
int rest=num.length; //처리해야 할 작업 개수
for(int i=1; i<st.length; i++) {
long time=((long) rest * (st[i] - st[i-1])); //몇번의 회전에 해당 작업이 끝나는가
if(time>k) {
long idx= k%rest; //어디서 멈춰야하는지 구하는 변수
int cnt=0;
for(int j=0; j<num.length; j++) {
if(num[j]>=st[i]) {
if(cnt==idx) {
System.out.print(j);
System.exit(0);
}
cnt++;
}
}
}
else {
k-=time;
rest--;
}
}
System.out.print(-1);
}
}
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
xogh7532님의 질문에 대해 답변 드릴게요.
자바로 멀티태스킹 문제에 대한 코드를 제출했는데, 예제는 정상적으로 돌아가고 제출하면 틀렸다고 나오는 경우, 문제가 될 수 있는 부분은 몇 가지가 있습니다. 제출하신 코드를 살펴보면, 주로 인덱스를 다룰 때 발생할 수 있는 문제점들이 보입니다.
배열의 인덱스는 0부터 시작하는데, for(int i=1; i<=n; i++)num[i]=sc.nextInt();
와 같이 1
에서 시작하는 것은 정상적입니다. 그러나 for(int j=0; j<num.length; j++)
에서 num[j]
를 탐색할 때, j=0
에서 시작이므로 출력할 때 System.out.print(j);
대신 System.out.print(j+1);
을 사용해야 할 수 있습니다. 이는 문제의 인덱스 요구 사항에 따라 달라질 수 있습니다.
또 다른 가능성으로는, 제출한 코드가 특정 조건(예를 들어, 모든 작업이 동일한 시간에 끝나는 경우나 특정 작업의 처리 시간이 매우 큰 경우 등)에서 예외적인 상황을 제대로 처리하지 못하는 경우입니다. 문제의 설명과 예시를 다시 한번 검토하여, 모든 가능한 경우를 코드가 정확하게 처리하고 있는지 확인해보시는 것이 좋습니다.
마지막으로, 문제의 요구사항을 정확히 이해하고 코드를 작성했는지 다시 한 번 확인해보세요. 때로는 문제를 잘못 이해하여 요구하는 로직을 정확히 구현하지 않는 경우도 있습니다.
위의 점들을 검토하시고, 여전히 문제를 해결하기 어렵다면 구체적인 문제 상황 또는 예외 케이스를 설명과 함께 추가 질문을 남겨주세요.