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

최현서님의 프로필 이미지
최현서

작성한 질문수

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

6. 뒤집은 소수

다른 방법 풀이 질문

작성

·

75

0

아래와 같이 StringBulder 와 paserInt 를 활용해서 풀어보았는데요.통과는 되는데.. 이슈는 없을까요?? public ArrayList<Integer> solution(int n, int[] arr){ ArrayList<Integer> answer = new ArrayList<>(); for(int i=0; i<n; i++){ StringBuilder sb = new StringBuilder(); sb.append(arr[i]); String tmpStr = sb.reverse().toString(); int tmpInt = Integer.parseInt(sb.toString()); if(isPrime(tmpInt)) { answer.add(tmpInt); } } return answer; }

답변 1

0

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

질문자님께서 제공하신 코드는 자바(Java)를 이용하여 주어진 숫자들을 뒤집고, 뒤집은 숫자가 소수인지 확인하는 문제를 해결하기 위한 코드 같습니다. StringBuilderInteger.parseInt() 메소드를 사용하여 숫자를 뒤집고 정수로 변환하는 과정을 구현하셨네요.

관련된 질문으로, “문제 Array 6번”이라는 제목의 게시글이 이와 유사한 상황에서의 질문을 다루고 있습니다. 이 게시글에서도 StringBuilderreverse() 메소드와 Integer.parseInt() 메소드를 사용하여 입력된 숫자를 뒤집고 정수로 변환하는 방법에 대한 질문이 있었습니다. 지식공유자는 이 방식이 문제 없이 유효하다고 답변하였습니다.

다만, 질문자님의 코드에서 사용하신 Integer.parseInt(sb.toString()); 부분은 StringBuilder 객체 sb를 이미 reverse() 메소드를 통해 뒤집은 상태이므로, toString()을 사용해야 할 것 같습니다. 즉, Integer.parseInt(tmpStr);가 맞는 코드입니다.

또한, 소수 판별 로직(isPrime 함수)이 제대로 구현되어 있다고 가정하면, 문제 풀이 접근 방식 자체에는 이슈가 없어 보입니다. 다만, 실제 환경에서의 테스트 케이스에 따라, 0으로 시작하는 숫자들이나 다른 edge case들을 정확히 처리하는지 확인할 필요가 있습니다.

이 방식 외에도 다양한 풀이 방법이 있을 수 있으니, 효율성과 코드 가독성 측면에서 다른 코드와 비교해 보시는 것도 좋을 것 같습니다.

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

최현서님의 프로필 이미지
최현서

작성한 질문수

질문하기