• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

혹시 이렇게 작성해도 괜찮나요?

24.01.06 19:35 작성 24.01.06 19:36 수정 조회수 151

0

코딩테스트 공부하면서 항상 궁금했는데..

강의 내용을 보면 클래스나 함수는 꼭 필요한 부분에서만 사용하시는 것 같더라구요..

아래처럼 써도 되나요? 면접관님들은 어떻게 생각하실지 궁금합니다.

    public static int[] run(int[] nums) {
        return Arrays.stream(nums)
                .mapToObj(MyNumber::new)
                .peek(user -> user.one = Integer.bitCount(user.value))
                .sorted(Comparator.comparingInt(MyNumber::one))
                .mapToInt(MyNumber::value)
                .toArray();
    }

    public static class MyNumber {
        final int value;
        int one;

        MyNumber(int value) {
            this.value = value;
            this.one = 0;
        }

        int value() {
            return value;
        }

        int one() {
            return one;
        }
    }

답변 2

·

답변을 작성해보세요.

1

안녕하세요^^

N제한이 작은 간단한 문제는 Stream에서 제공하는 메서드나 람다식을 이용해 간단하게 코드를 구현하면 Java에 대한 이해도가 높은 사람처럼 보여 면접에서 좋은 면이 있습니다.

다만 Stream이 일반 for-loop보다는 약간 느립니다. 그래서 N제한이 큰 문제는 Stream보다는 직접 작성해서 하는 것을 추천합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.08

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

유성현님 질문에 대한 답변입니다.

네, 주어진 코드를 사용하는 것에 객관적인 문제는 없습니다. 클래스와 함수를 정의하여 사용하는 것은 자바 프로그래밍에서 매우 일반적인 접근 방식입니다. MyNumber 클래스를 통해 숫자와 각 숫자의 1 비트 개수를 함께 추적하고 있으며, 이를 스트림 API를 이용하여 효율적으로 처리하고 있습니다.

코딩테스트나 면접에서 중요한 것은 작성한 코드가 요구 사항을 정확히 만족하고, 코드가 명확하며 적절한 수준의 효율성을 갖추고 있는지입니다. 또한, 코드의 가독성과 유지보수성 또한 중요한 평가 요소가 됩니다.

다만, 면접관마다 선호하는 코딩 스타일이나 기준이 다를 수 있기 때문에, 면접 시엔 면접관이 어떤 관점을 중요하게 생각하는지를 파악하는 것도 중요합니다. 자신만의 명확한 근거를 가지고 코드 작성 방식을 설명할 수 있다면, 일반적으로 긍정적인 인상을 줄 수 있습니다.

코딩테스트 준비하시는 과정에서 더 좋은 결과를 얻으시길 바랍니다.