코딩테스트 연습 스터디 진행중 입니다. ✍✍✍
Notion : https://www.notion.so/1c911ca6572e4513bd8ed091aa508d67
문제
https://school.programmers.co.kr/learn/courses/30/lessons/1845
풀이
[나의 풀이]
def solution(nums):
tmp=set() # set() : set형 선언, * tmp = {} 는 dict형 선언
[tmp.add(i) for i in nums] # 중복되는 값은 삭제
print(len(nums)/2)
if len(tmp) > int(len(nums)/2): # 중복되는 값이 뽑는 갯수보다 크더라도
answer = len(nums)/2 # 뽑을 수 있는 갯수가 최대 갯수
# int(len(nums/2)) => (int) 연산자 (int)
# 이기 때문에 int형으로 return. *사실 형변환 불필요
else:
answer = len(tmp) # return answer 시 문제에서 알아서 모든 경우의 수를
# 고려해주기 때문에 '고유한 값 갯수' = answer
return answer
# // 연산자 : 소숫점 버리는 나눗셈
[팀원의 풀이1]
def solution(nums):
answer = 0
temp = int(len(nums)/2)
nums.sort()
after = set(nums)
if len(after) > temp:
answer = temp
else :
answer = len(after)
return anwser
[팀원의 풀이2]
def solution(nums):
answer = 0
lst = set(nums)
if len(lst) > len(num2)/2:
answer = len(nums)/2
else:
answer = len(lst)
return answer
메모
이번 문제는 모두 비슷하게 푼 것 같다!
감사합니다.🌞🌞🌞