본문 바로가기

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

지폐 접기 첫번째 코드 내장 함수들의 사용법만 알면 작성하 수 있는 문제이다.가이드 라인이 있는데 해당 과정을 토대로 맞는 함수와 조건을 작성하면 된다. def solution(wallet, bill):     answer = 0          while min(bill) > min(wallet) or max(bill) > max(wallet) :         if bill[0] > bill[1]:             bill[0] = bill[0] // 2         else:             bill[1] = bill[1] // 2         answer += 1          return answer 통과!간단한 문제로 복기하고 다시 알고리즘이나 어려운 문제들을 도전하자!링크https://.. 2024. 10. 14.
물 부족 첫번째 코드 코드의 한줄만 바꿔서 문제에 맞는 코드로 바꾸는 문제였다.처음에 보고 느낀 것은 total_usage = 0 이므로 계속 0이 반복해서 들어가서 결과가 똑같아질 것 같은 것,그래서 total_usage를 바꿔야겠다 라는 생각을 했다. def solution(storage, usage, change):     total_usage = usage     for i in range(len(change)):         usage = total_usage * change[i]/100         total_usage += usage         if total_usage > storage:             return i          return -1 오류두번째 코드 생각해보니까 계속.. 2024. 10. 11.
연속된 부분 수열의 합 첫번째 코드 위도우를 통해 계산한다.이때 시작 인덱스와 끝 인덱스, 그리고 sequence 길이 자체를 헷갈리지 말아야 한다. 비내림차순인데 수열이므로 오름차순일 것이고, 끝에서부터 계산하면 가장 짧은 수열을 구할 수 있다.하지만 동일한 숫자가 반복되는 경우, 가장 앞에 있는 인덱스를 가져와야 하므로, 현재 숫자가 이전 숫자와 동일한 값인지 판단해야 한다. def solution(sequence, k):     answer = []     num = 0     end_index = len(sequence) - 1          for start_index in range(len(sequence)-1, -1, -1):         num += sequence[start_index]            .. 2024. 9. 13.
숫자 변환하기 첫번째 코드 BFS를 이용해야겠다! 라고 생각을 했다.처음에는 값만을 넣었는데, count가 정답을 구하기 위해 별도로 필요하므로 [값, count] 형태로 현재까지의 계산값과 계산 횟수를 표시한다. 계산할 수 있는 모든 값을 계산하고, y와 같은 경우 answer 리스트에 넣는다.계산 횟수를 기준으로 정렬 한 후 계산 횟수가 가장 적은 경우만 불러온다. from collections import deque def solution(x, y, n):     answer = []     count = 0     queue = deque()     queue.append([x, count])     while queue:         now = queue.popleft()         count = now.. 2024. 9. 9.
배열 만들기 2 첫번째 코드 해당 범위의 수에서 0과 5으로만 구성되어 있으면, 정답에 포함한다.만약 정답 리스트가 비어있다면 -1을 반환하면 된다! def solution(l, r):     answer = []          number = ['0', '5']          for i in range(l, r+1):         now = str(i)         now_in = True         for j in now:             if j not in number:                 now_in = False                 break         if now_in == True:             answer.append(i)          if answer:.. 2024. 9. 6.
[1차] 비밀지도 첫번째 코드 그리디 알고리즘을 이용하여 이진법으로 된 수를 구할 수 있다.원래는 arr1과 arr2를 이용하여 각각의 공백과 #으로 된 배열을 구한 뒤에 통합하려 했으나,계산량이 불필요하게 너무  많아질 것 같아 한번에 계산하였다. def solution(n, arr1, arr2):     answer = []          for i in range(n):         map = ''         for j in range(n-1, -1, -1):             if arr1[i] // (2**j) > 0 or arr2[i] // (2**j) > 0:                 map += '#'                 arr1[i] =  arr1[i] % (2**j)        .. 2024. 9. 2.
728x90