상세 컨텐츠

본문 제목

[TIL#28] Study] 코딩 테스트 11

개인 공부/코딩 테스트

by DK9 2023. 12. 29. 09:38

본문

1. 택배기사

1번 집부터 100번집까지 담당하는 택배기사가 N개의 택배 상자를 배달하는데 몇 가구를 방문했는지 구하는 문제이다.

 

6개의 택배 상자를 배달한다 가정했을 때

  • 1번 집에 3개
  • 9번 집에 1개
  • 87번 집에 1개
  • 1번 집에 1개

의 택배 상자를 배달하면 총 3가구를 방문했다.

 

이를 코딩하면 된다.

import java.util.Scanner;

public class TaxBaeKnight {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int taxBea = sc.nextInt();
        int visitHome = 0;
        boolean[] inputHome = new boolean[101];

        for (int i = 0; i < taxBea; i++) {
            int home = sc.nextInt();
            if (!inputHome[home]) {
                inputHome[home] =true;
                visitHome++;
            }
        }
        System.out.println(visitHome);
    }
}

 

 택배 상자를 몇 개 배달했냐가 중요한 것이 아닌 몇 번집을 방문했냐가 중요하기에 boolean 배열을 사용했다.

 

 boolean 배열의 초기 값은 false이기에 반복문 내에 !inputHome[home] 를 조건으로 로직을 실행했다.

 

배운점

  • boolean 배열도 존재하며 int 배열보다 훨씬 빠르다.
  • 문제의 본질을 파악하는 것은 역시 매우 중요하다.

관련글 더보기