[HackerRank 문제 풀이] Java Generics Print Array

Junu Kim·2025년 11월 4일
0
post-thumbnail

[Java Generics] Print Array

난이도: ★☆☆☆☆ • solved on: 2025-11-04


문제 요약

  • 문제 유형: 제네릭(Generic), 메서드 구현
  • 요구사항: 주어진 배열을 제네릭 메서드를 이용해 출력하는 printArray() 메서드를 작성해야 한다.

사용 개념

  1. 자료구조

    • Array : Integer[], String[] 등 다양한 타입의 배열을 입력받음
  2. 알고리즘/기법

    • Generic Method : 자료형에 관계없이 동작할 수 있는 메서드 작성
    • for-each Loop : 배열 요소를 순회하며 출력
  3. 핵심 키워드

    • 제네릭(Generic), 타입 파라미터(Type Parameter), 다형성(Polymorphism)

풀이 아이디어

  1. 문제 분해
  • 메서드 이름은 printArray, 입력은 배열 형태
  • 배열의 타입은 고정되지 않으므로 Comparable[]로 선언 가능 (Integer와 String 모두 Comparable이기에 가능함)
  • 각 원소를 한 줄씩 출력하면 됨
  1. 핵심 로직 흐름

    for each element in inputArray:
        print(element)
  2. 예외 처리

    • 배열이 비어 있더라도 단순히 아무것도 출력하지 않음

코드

class Printer {
    // Write your code here
    public void printArray(Comparable[] inputArray) {
        for (Comparable data : inputArray) {
            System.out.println(data + "");
        }
    }
}

시간·공간 복잡도

  • 시간 복잡도: O(N) — 배열의 모든 원소를 한 번씩 출력
  • 공간 복잡도: O(1) — 추가적인 자료구조 사용 없음

어려웠던 점

  • IntegerString처럼 서로 다른 타입의 배열을 한 메서드로 처리해야 했기에, 제네릭(Generic)의 개념을 이해하는 것이 가장 어려웠다.

배운 점 및 팁

  • Generic 메서드 기본형

    public <T> void printArray(T[] inputArray) {
        for (T element : inputArray) {
            System.out.println(element);
        }
    }

    이렇게 작성하면 Integer[], String[], Double[] 등 모든 배열을 처리할 수 있다.


참고 및 링크


추가 연습 문제

  • 비슷한 유형 (GPT 추천):

    • Java Generics: Add, Remove, and Iterate
    • Generic Classes (Baekjoon 스타일 응용)
  • 확장 문제 (GPT 추천):

    • 제네릭 타입의 Comparator를 이용한 정렬 문제
    • 타입 제한(Generic Bounds)을 활용한 다형성 문제
profile
생각이 현실이 될 수 있도록 노력하는 중입니다.

0개의 댓글