본문 바로가기

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

타겟 넘버 첫번째 코드 DFS를 이용한 문제인데,이전에 책으로만 풀어보다가 직접 경험하려해보니 어려움이 있었다. 어느정도 코드를 작성한 후 마무리가 되지 않아다른 사람의 코드를 보고 참고했다. 개수를 올려가면서 index == number의 길이 일 때 모든 수를 사용했다는 의미이므로 제한을 둔다.그리고 target과 여태 더하거나 뺀 total을 비교하여 동일하면 1을 더한다.numbers안의 수를 더하거나 뺄 때 재귀함수를 사용하여 진행한다. def solution(numbers, target):     global answer     answer = 0          def dfs(index, total):         global answer         if index == len(numbers): .. 2024. 6. 1.
포켓몬 첫번째 코드 종류를 확인한 후 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.
728x90