전체 글 267

[Python] 폰켓몬

def solution(nums): l = len(nums) / 2 k = len(set(nums)) return k if k < l else l 풀이 1. set함수를 이용해 nums에 있는 중복 폰켓몬들을 제거한다. 그렇게 된다면 nums에는 폰켓몬들이 각각 한 종류씩만 남게 된다. 2. 그 갯수가 " nums에 있는 폰켓몬의 수 / 2 " 보다 작다면 k(폰켓몬의 종류 수) 를 반환하고, 가져갈 수 있는 폰켓몬의 수보다 크다면 l(최대 가져갈 수 있는 폰켓몬의 수)을 반환한다. 참고할만한 다른 분의 풀이 def solution(nums): return min(len(nums)//s, len(set(nums)))

TDD(테스트 주도 개발)

TDD란 ? ✔︎ Test Driven Development : 테스트 주도 개발. 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 테스트 케이스를 먼저 만들고 이 테스트를 통과하기 위해 구현을 짜는 것이다. 즉, 만드는 과정에서 먼저 테스트를 작성하고 그것을 통과하는 코드를 만들며 제대로 동작하는지에 대한 피드백을 적극적으로 받는 것이다. ✔︎ 보통 SW 개발을 할 때 코딩을 다 끝낸 후, 테스트를 한다. 그러나 이 순서를 바꾸는 것이 TDD를 적용하는 것이다. TDD의 효과 TDD를 왜 해야 할까 ? 애자일과 같이 불확실성이 높을 때 '피드백'과 '협력'이 중요하다. 왜냐하면, 불확실성이 높을 때 피드백과 협력을 이용하면 더 좋은 결과가 나올 확률이 높아진다. TDD도 마찬가..

CS 2021.05.18

[Python] 짝지어 제거하기

from collections import deque def solution(s): if len(s) % 2 == 1 : return 0 s = deque(s) temp = [] i = s.popleft() while s : j = s.popleft() if i == j : if not s : return 1 else : if temp : i = temp.pop() else : i = s.popleft() continue else : temp.extend(i) i = j return 0 너무 복잡하게 생각한 문제... ※ 더 쉬운 풀이는 밑에 있어요 ! ※ 1) 홀수 거르기, 처음 from collections import deque def solution(s): if len(s) % 2 == 1 : r..

[Python] 로또의 최고 순위와 최저 순위

def solution(lottos, win_nums): count_z = lottos.count(0) lottos = sorted(lottos, reverse=True) answer = 0 for num in lottos : if num == 0 : break elif num in win_nums : answer += 1 rank = {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6} return [rank[answer+count_z], rank[answer]] 풀이 먼저 0의 개수를 count함수를 이용해 추출한다. 최고 순위는 0(알아볼수 없는 숫자)이 다 맞았다고 가정하여 "알아볼 수 있는 숫자 중 맞은 개수 + 0의 개수"의 순위이고, 최저 순위는 0이 다 틀렸다고 가정하여 "알아 ..