> 개발-IT-인터넷/> JAVA

[해커랭크(HackerRank) JAVA 풀이] - Java Instanceof keyword

jini:) 2023. 10. 30. 14:14
728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Object Oriented Programming > Java Instanceof keyword
 

HackerRank

HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Learn how to hire technical talent from anywhere!

www.hackerrank.com

 

 

Java instanceof 연산자는 개체 또는 인스턴스가 지정된 유형의 인스턴스인지 테스트하는 데 사용됩니다.

이 문제에서는 편집기에 세 가지 클래스를 제공했습니다.

  • Student class
  • Rockstar class
  • Hacker class

기본 메서드에서 이러한 클래스의 여러 인스턴스로 ArrayList를 채웠습니다. count 메서드는 ArrayList에 있는 각 유형의 인스턴스 수를 계산합니다. 이 코드는 Student 클래스의 인스턴스 수, Rockstar 클래스의 인스턴스 수, Hacker 클래스의 인스턴스 수의 세 가지 정수를 출력합니다.

하지만 일부 코드가 누락되어 3줄만 수정하여 수정하면 됩니다! 추가 행을 추가, 삭제 또는 수정하지 마십시오.

편집기에서 원래 코드를 복원하려면 편집기에서 왼쪽 상단 아이콘을 클릭하고 새 버퍼를 만듭니다.

 

Sample Input

5
Student
Student
Rockstar
Student
Hacker

 

Sample Output

3 1 1

 

반응형

 

Code

import java.util.*;


class Student{}
class Rockstar{   }
class Hacker{}


public class InstanceOFTutorial{
	
   static String count(ArrayList mylist){
      int a = 0,b = 0,c = 0;
      for(int i = 0; i < mylist.size(); i++){
         Object element=mylist.get(i);
         if(element instanceof Student)// ~~Complete this line~~
            a++;
         if(element instanceof Rockstar)// ~~Complete this line~~
            b++;
         if(element instanceof Hacker)// ~~Complete this line~~
            c++;
      }
      String ret = Integer.toString(a)+" "+ Integer.toString(b)+" "+ Integer.toString(c);
      return ret;
   }

   public static void main(String []args){
      ArrayList mylist = new ArrayList();
      Scanner sc = new Scanner(System.in);
      int t = sc.nextInt();
      for(int i=0; i<t; i++){
         String s=sc.next();
         if(s.equals("Student"))mylist.add(new Student());
         if(s.equals("Rockstar"))mylist.add(new Rockstar());
         if(s.equals("Hacker"))mylist.add(new Hacker());
      }
      System.out.println(count(mylist));
   }
}

 

 

instanceof 연산자
주어진 객체가 특정 클래스의 인스턴스인지 또는 해당 클래스의 하위 클래스의 인스턴스인지 확인하는 데 사용.
불리언(boolean) 결과 반환.
객체의 유형을 동적으로 확인.

instanceof 연산자 활용
1. 다형성 (Polymorphism) : 다형성을 활용할때 유용하게 사용.  상위 클래스 또는 인터페이스를 사용하여 여러 하위 클래스의 객체를 다룰 때 객체의 실제 유형을 확인.
2. 타입 검사 (Type Checking) : 객체의 유형을 확인하고 해당 유형에 따라 특정 동작을 수행해야 할 때 사용.
3. 예외 처리 : 특정 예외 클래스의 인스턴스 여부를 확인하고 해당 예외를 처리하는 데 사용.

 

 

개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.

 

 

 

 

728x90
반응형