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

So Hee Park님의 프로필 이미지
So Hee Park

작성한 질문수

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

6. 뒤집은 소수

소수 뒤집기 문제 다른 방식으로 풀기

작성

·

200

0

복잡하게 푼 것 같기는 한데, 혹시 어떻게 수정하면 정답이 될까요?인풋, 아웃풋은 잘 나오는데 채점 사이트에서는 오답이라고 뜹니다.   import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; class Main { public String solution(int n, int[] intArr){ String answer = " "; int[] intPrimeArray= new int[n]; for(int i=0; i<n; i++){ int indexInt= intArr[i]; int remain; int reverse=0; while(indexInt > 0){ remain= indexInt%10; reverse= reverse*10 + remain; indexInt = indexInt/10; } intPrimeArray[i] = reverse; int flag= 0; if(intPrimeArray[i]==1) flag=1; for(int j=2; j<intPrimeArray[i]; j++){ if(intPrimeArray[i] % j ==0 ) flag=1; } if(flag==0) answer += intPrimeArray[i] + " "; } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner sc= new Scanner(System.in); int n = sc.nextInt(); int[] intArr = new int[n]; for(int i=0; i<n; i++){ intArr[i]= sc.nextInt(); } System.out.println(T.solution(n, intArr)); } }

답변 1

1

안녕하세요, 인프런 AI 인턴입니다.

소수를 뒤집어서 판별하는 문제에 관해 질문해 주셨네요. 질문하신 코드를 살펴보았을 때, 올바른 출력이 나오고 있다 하는데 채점 사이트에서 오답으로 나오는 부분에 대해 좌절감을 느끼실 수 있을 것 같습니다. 이와 관련하여 문제가 될 수 있는 몇 가지 점을 지적하고자 합니다.

  1. 소수 판별 로직 수정 필요: 주어진 코드에서 소수 판별 로직이 조금 더 효율적으로 작성될 필요가 있습니다. 현재 주어진 방법으로는 모든 수를 순회하게 되어 비효율적일 수 있으며, 소수 판별시 intPrimeArray[i]==1 조건에서 flag를 1로 설정하신 부분이 있는데, 일반적으로 1은 소수로 취급하지 않습니다. 때문에 이 부분에 있어서 오답 처리가 될 가능성이 큽니다.

  2. 중복된 소수 처리: 제출하신 코드에서는 중복된 소수가 있을 경우 이를 구분하지 않고 여러 번 출력할 가능성이 있습니다. 문제의 요구사항에 따라 중복된 소수의 처리가 필요할 수 있습니다.

이러한 문제들을 해결하기 위해서는 코드의 로직을 조금 더 최적화할 필요가 있을 것 같습니다. 여기서는 관련 질문 및 답변들 중 유사한 문제를 해결한 기존 답변을 찾을 수 있었습니다. 이를 참고하시면 도움이 될 것 같습니다.

  • “2-6)런타임에러 질문입니다.”에서는 뒤집은 수를 검사하고 소수를 판별하는 과정에서 발생할 수 있는 런타임 에러에 대한 질문과 이에 대한 답변을 볼 수 있습니다. 주로 배열 또는 리스트 작업 중 발생할 수 있는 인덱스 관련 에러에 초점을 맞추고 있으며, 이는 질문하신 코드의 로직을 개선하는 데 유용한 정보를 제공할 수 있습니다.

관련 질문에서 문제의 일반적인 접근법, 코드 수정에 대한 논의뿐만 아니라, 인덱스 처리에 있어서 주의해야 할 점에 대한 설명이 담겨 있습니다. 나아가, 주어진 답변을 통해 코드의 빠르고 효율적인 개선 방법을 배울 수 있을 겁니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

So Hee Park님의 프로필 이미지
So Hee Park

작성한 질문수

질문하기