본문 바로가기

코딩 테스트/프로그래머스98

포켓몬 첫번째 코드 종류를 확인한 후 n//2개수보다 많으면 n//2를 출력하고그렇지 않으면 현재 있는 종류만큼 출력한다. def solution(nums):     answer = 0          pocketmon = set(nums)          if len(pocketmon) >= (len(nums)//2):         answer = (len(nums)//2)     else:         answer = len(pocketmon)          return answer 통과!링크https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/1845.%E2%80%85%.. 2024. 5. 30.
같은 숫자는 싫어 첫번째 코드 현재 위치의 값과 다음 위치의 값을 비교해가면서 같으면 넘어가고 아니면 정답에 포함한다! def solution(arr):          answer = []     answer.append(arr[0])     now = arr[0]          for i in arr:         if i != now:             answer.append(i)             now = i              return answer 통과!링크https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12906.%E2%80%85%EA%B0%99%EC%9.. 2024. 5. 29.
멀리 뛰기 첫번째 코드 def solution(n):          count = 1     down = 1          for i in range(1, int(n/2)+1):         up = 1         for j in range(i):             up *= (n-i-j)         down *= i         count += up/down             answer = count % 1234567     return answer 오류....두번째 코드 손으로 하나하나 써가다가 피보나치 같은 특성을 갖고 있음을 알았다.ap[i] = ap[i-1] + ap[i-2] 이렇게 단순한 특성이 있는데...나는 왜...;; def solution(n):          ap = [.. 2024. 5. 28.
더 맵게 첫번째 코드 prioirty queue를 이용해서 정렬한 후 맨 앞과 그 다음을 뽑은 후 계산해서 넣는 과정을 반복해서 계산하도록 하였다. from queue import PriorityQueue def solution(scoville, K):     prioirty = PriorityQueue()     count = 0     for i in scoville:         prioirty.put(i)     while not prioirty.empty() and prioirty.queue[0]         least = prioirty.get()         if least >= K:             continue         else:             mixed = prioirt.. 2024. 5. 25.
올바른 괄호 첫번째 코드 check라는 변수를 이용하여 "("인 경우에는 1을 더하고 ")"인 경우에는 -1을 더한다.하지만 ")"로 시작하는 경우 -1로 시작하지만 고려하지 않으므로 check가 0미만인 경우에 False로 break 하도록 한다.최종적으로 check가 0이 되어야 열리거나 닫혀있는 괄호는 없는 것이다. def solution(s):     answer = True     check = 0          for i in s:         if i == "(":             check += 1         elif i == ")":             check -= 1                  if check             answer = False            .. 2024. 5. 24.
기능개발 첫번째 코드 먼저 필요한 날로 구성된 리스트를 만들어야 한다.이를 위해 (남은 날 // 속도)을 구한 후 나머지가 있는 경우 +1을 한다. 이제 값을 비교해가면서 현재 값보다 큰 값이 있지 않은 수를 순차적으로 더해간다.마지막 값이 빠지지 않도록 포함한 후 결과를 만든다. def solution(progresses, speeds):     answer = []     days = [0] * len(progresses)     count = 0     for i in range(len(progresses)):         progresses[i] = 100 - progresses[i]     for i in range(len(progresses)):         if (progresses[i] % sp.. 2024. 5. 23.
728x90