본문 바로가기
코딩테스트/Beakjoon

백준 20155번 : 우리 집 밑에 편의점이 있는데 [Python]

by 나스나키 2024. 1. 21.
728x90

https://www.acmicpc.net/problem/20155

 

20155번: 우리 집 밑에 편의점이 있는데

두 정수 N (1 ≤ N ≤ 1,000), M (1 ≤ M ≤ N)가 주어진다. 그 다음 줄에 N개의 각 편의점 브랜드 X (1 ≤ X ≤ M)가 정수로 주어진다.

www.acmicpc.net

 

 

문제 

큰일이다. 정훈이는 자취방 밑에 편의점이 있다는 사실을 친구들에게 말했다.

친구들은 정훈이의 자취방을 찾기 위해 가톨릭대 주변 N개의 편의점 근처에서 잠복하기로 했다. 편의점 브랜드는 2마트, SeeYou, CS=25, MiniGo 등의 M개가 있다. 친구들은 편의점이 너무 많아 하루에 하나의 브랜드를 정하여 브랜드의 모든 편의점들을 잠복을 하기로 했다. 편의점마다 최소 1명이 잠복하고 M개의 브랜드가 있으므로 최소 M일이면 N개의 모든 편의점을 잠복할 수 있다. 정훈이가 언제 나타날지 모르기 때문에 M일의 잠복 계획표를 작성하려고 하는데 최소 몇 명이 있어야 모든 브랜드에 대해 편의점을 놓치지 않고 잠복할 수 있는지 구해보자.

 
 

입력

두 정수 N (1 ≤ N ≤ 1,000), M (1 ≤ M ≤ N)가 주어진다.

그 다음 줄에 N개의 각 편의점 브랜드 X (1 ≤ X ≤ M)가 정수로 주어진다.

 
 
 

출력

최소 몇 명이 모여야 하는지 출력한다.

 

 

예시

 

코드

n, m = map(int, input().split())
arr = list(map(int, input().split()))
cnt = []

for i in range(0, max(arr) + 1):
    cnt.append(arr.count(i))

print(max(cnt))

 

 

코드 해석

  • 두 수를 받는다. 
  • 리스트를 받는다.
  • 담을 담을 cnt를 담는다.
  • for로 각 일자마다 몇일식 걸리는지 구한 후 cnt에 넣는다.
  • cnt에서 가장 큰 값을 출력한다.

728x90