본문 바로가기

전체 글400

블랙잭 첫번째 코드 목표와 두 개의 숫자의 차이 중 차이가 작은 숫자를 불러오는 함수를 작성한 후,3개의 숫자를 더해서 해당 숫자와 답으로 가정된 숫자와 비교 후 업데이트 하는 과정을 반복하여 코드를 작성하였다. import sys input = sys.stdin.readline n, m = map(int, input().split()) A = list(map(int, input().split())) num = 0 diff1 = 0 diff2 = 0 answer = 0 def diff_min (x, y):     global m     diff1 = m - x     diff2 = m - y     if diff1         return x     else:         return y for i in r.. 2024. 5. 31.
포켓몬 첫번째 코드 종류를 확인한 후 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.
036 잃어버린 괄호 첫번쨰 코드 뺴기를 기준으로 나누어 괄호가 있다고 생각하면 된다.즉, 5 + 6 - 1 + 2 + 3 - 4 + 5라고 한다면 5 + 6 - (1 + 2 + 3) - (4 + 5)인 것이다. 이를 위해 데이터를 '-'기준으로 분리한다.나눈 각 원소를 다시 '+'기준으로 분리하고 숫자로 만들어 더한다.그리고 첫번쨰 원소는 그대로 두고, 다음부터 빼면서 더해간다. import sys input = sys.stdin.readline A = list(map(str, input().split('-'))) answer = 0 def total_sums (x):     total = 0     sum_numbers = map(int, x.split('+'))     for i in sum_numbers:       .. 2024. 5. 30.
035 회의실 배정 첫번째 코드 그리디 알고리즘을 이용한다.책과 비슷한 시간으로 문제를 바라보았다. sort문을 통해 1. 끝나는 시간이 빠른 기준 2. 시작하는 시간이 빠른 기준 으로 줄을 세운다.시작하는 시간 기준으로 다음에 바로 이용이 가능하다면 바로 채우는 코드를 작성한다.하지만 sort에서 애를 먹어 책을 참고했다. n = int(input()) A = [[] for _ in range(n)] for i in range(n):     s, e = map(int, input().split())     A[i].append(e)     A[i].append(s) A.sort() end = -1 answer = 0 for i in A:     if i[1] >= end:         answer += 1        .. 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.
034 수 묶기 첫번째 코드 역시! 그리디 알고리즘을 이용하자 그리고 033번 문제를 풀고 난 후 문제를 접한 것이여서 비슷한 느낌으로 풀면 되겠구나! 라는 생각이 금방 들었다. 가장 큰 숫자끼리 곱하는 것이 큰 수가 나오므로 priority queue를 이용해야 한다. 양수인 경우, 음수인 경우 나누어 진행한다. (priority queue는 오름차순으로 정리되기 때문에 양수에 -1을 곱하여 가장 큰 수가 가장 앞에 오도록 해야한다!!!) 음수가 남으면 0을 더하게 되면 좋으므로 일단 빼두고 나중에 음수가 남는 경우에 더한다. 1은 곱하는 것에 의미가 없기 때문에 무조건 더한다! import sys input = sys.stdin.readline from queue import PriorityQueue n = int(.. 2024. 5. 28.
728x90