본문 바로가기

알고리즘 문제

프로그래머스 폰켓몬

주어진 폰켓몬들은 nums다. 이것의 절반까지 폰켓몬들을 선택할 수 있다. 최대한 많은 종류의 폰켓몬을 선택해야한다.

mon 배열에 False 원소를 20만개 넣는다.


주어진 폰켓몬의 종류 번호를 인덱스 삼아 mon 배열에 True를 넣는다.

mon배열에 있는 True의 총 갯수를 세면 폰켓몬의 종류 수가 나온다.

폰켓몬의 종류가 주어진 폰켓몬 수의 절반 이상이라면 어차피 최댓값은 N이므로 N을 반환한다.

아니면 count를 반환한다.


def solution(nums):
N=len(nums)//2
mon=[False]*200000
count=0
for i in range(len(nums)):
mon[nums[i]-1]=True
for j in range(200000):
if mon[j]==True:
count+=1
if count>=N:
return N
else:
return count

print(solution([3,1,2,3]))
print(solution([3,3,3,2,2,4]))
print(solution([3,3,3,2,2,2]))



https://programmers.co.kr/learn/courses/30/lessons/1845/solution_groups?language=python3

'알고리즘 문제' 카테고리의 다른 글

프로그래머스 소수 만들기  (0) 2018.10.06
프로그래머스 항상 정답  (1) 2018.10.06
프로그래머스 다리를 지나는 트럭  (4) 2018.10.05
프로그래머스 기능개발  (0) 2018.10.05
프로그래머스 탑  (0) 2018.10.05