231028 프로그래머스 문제풀기 [고득점 Kit]
이제 고득점 Kit 문제풀이를 들어간닥 !
후후 떨리지만 신난다 ..
화이팅 해보자고 ~!~~~
뿌 셔 뿌 셔
처음은 <해시> 주제인 문제를 풀어보려고 한다 !
* 폰켓몬 문제에서는
중복을 제거해야한다고 생각해 set함수를 사용하고, 고를수 있는수로 len(num) // 2를 이용해야한다는것까지는 생각했는데, 그 둘을 어떻게 조합해야 답이 나오는지 결론을 내지 못해 다른 사람들의 힌트를 보아똬 .. ㅜ
이 문제를 풀기 위해서는 min함수를 사용하면 되는거였다 ..!
def solution(nums):
kind = len(set(nums))
pick = len(nums) // 2
return min(kind,pick)
아주 간단하게 풀 수 있는 문제였다 ㅠ
더 간단하게 하고 싶다면
def solution(ls):
return min(len(ls)/2, len(set(ls)))
이렇게 하면 된다 !
첫 문제 스스로의 힘으로 풀고 싶었는데 아쉽다 ㅠ
그래도 많은 문제가 남았으니 화이팅해보자고 !
중 꺾 마 레고 ~
아니 그냥
\(@^0^@)/
* 완주하지 못한 선수 문제에서는
def solution(participant,completion):
for i in participant:
if i in completion:
completion.remove(i)
else:
return i
이렇게 코드를 짜 최종 정확성 테스트는 모두 통과를 하였는데,
효율성 테스트를 다 실패했다 ㅋ.ㅋ ..
이거이거 조금 짜증나네 ? 하하 ..
그래서 다른분의 힌트를 얻어 코드를 작성해따 ㅠ
def solution(participant,completion):
participant.sort()
completion.sort()
for a,b in zip(participant,completion):
if a != b:
return a
return participant[-1]
sort함수와 zip함수를 사용하면 쉽게 풀 수 있는 문제였다 !
내가 너무 쉽게 생각했나보다 ㅠ
zip함수는
https://www.daleseo.com/python-zip/
파이썬의 zip() 내장 함수로 데이터 엮기
Engineering Blog by Dale Seo
www.daleseo.com
위의 코드는
[프로그래머스] 완주하지 못한 선수 - Lv.1 (tistory.com)
[프로그래머스] 완주하지 못한 선수 - Lv.1
[프로그래머스] 완주하지 못한 선수 Lv.1 - [파이썬/python] https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발
1ets-just-do-it.tistory.com
에 잘 설명이 되어있다 !
그리고 다른 분들의 코드에서 본 collections counter라는 함수는 처음보는 함수라 서칭을 해보았다 !
counter함수는
https://www.daleseo.com/python-collections-counter/
파이썬 collections 모듈의 Counter 사용법
Engineering Blog by Dale Seo
www.daleseo.com
이 블로그를 참고하면 좋을 것 같다 !
그리고 collections counter함수에 대해서는
https://velog.io/@kimdukbae/Python-collections-%EB%AA%A8%EB%93%88%EC%9D%98-Counter
[Python] collections 모듈의 Counter
collections 모듈의 Counter 클래스는 컴퓨터 과학에서의 자료구조는 아니다. 하지만, Python 언어에서 지원하는 자료구조라고 생각했기에 자료구조 시리즈에 글을 포스팅하게 되었다.collections 모듈의
velog.io
이 블로그를 참고하면 좋을 것 같다 !
그래서 이 함수를 사용하여 이 문제를 풀면
import collections
def solution(participant, completion):
answer = collections.Counter(participant) - collections.Counter(completion)
return list(answer.keys())[0]
이렇게 간단하게 풀 수 있다 !
문제를 간단하게 풀 수 있는 새로운 함수를 알게되어 신기하닥 !