일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 리얼클래스
- java 객체지향 프로그래밍
- 프로그래머스
- 신문스크랩
- 네트워크 관리사
- SSAFYcial
- SSAFY
- python
- SSAFY 7기
- 코테
- 구글
- IT 동향
- IT 트렌드
- 코딩테스트 연습
- html
- 네트워크 관리사 2급 실기
- 싸피셜
- 신문 스크랩
- it 이슈
- Java
- it 뉴스
- 백준위
- 우테코
- KT
- 카카오
- 인앱결제
- 네트워크 관리사 2급
- 백준
- 싸피
- 코딩테스트
Archives
- Today
- Total
개발자일걸요..?
폰켓몬 본문
728x90
반응형
링크 : https://programmers.co.kr/learn/courses/30/lessons/1845
코딩테스트 연습 - 폰켓몬
당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.
programmers.co.kr
(프로그래머스>코딩테스트연습>찾아라 프로그래밍 마에스터>폰켓몬)
<내가 한 코딩 1>
def solution(nums):
answer = 0
n = len(nums)
setNum = list(set(nums))
if (len(setNum)>=n//2):
answer = n//2
else:
answer = len(setNum)
return answer
<내가 한 코딩 2>
def solution(nums):
answer = min(len(nums)//2, len(list(set(nums))))
return answer
<풀이 근거>
- 중요한 점은 "총 몇 마리인가?"와 "총 몇 종류인가?"이다.
- 여기서 마리수는 주어진 배열 nums의 길이를 확인해서 알 수 있다.
- 종류 수는 주어진 배열을 set으로 변형하여 중복을 없앤 후 길이를 확인하여 알 수 있다.
만약 N마리 있을 경우-> 가져갈 수 있는 마리수는 N/2마리 = 가져갈 수 있는 최대 종류수도 N/2종류이다. 즉, N/2이상의 종류가 있어도 가져갈 수 있는 종류는 N/2종류가 되는 것이다.
반면, N마리가 있으나 종류수가 N/2보다 작을 경우, 최대 종류를 전부 가져갈 수 있다.
==>이 두 사항을 합쳐 고려해보면 N/2와 종류수 중 더 작은 값이 채택 된다.
반응형
'알고리즘코딩 > Programmers' 카테고리의 다른 글
문자열 다루기 (0) | 2021.07.24 |
---|---|
두 개 뽑아서 더하기 (0) | 2021.07.24 |
로또의 최고 순위와 최저 순위 (0) | 2021.07.24 |
숫자 문자열과 영단어 (0) | 2021.07.23 |
신규 아이디 추천 (0) | 2021.07.23 |
Comments