본문 바로가기

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

피보나치 수 첫번째 코드 그래도 피보나치 저번에 경험해봐서 이번에 조금 익숙한 느낌이었다.이전 두개의 값을 더해서 다음의 값을 내는 것 사실 문제를 끝까지 읽지 않아(이놈아;) 에러가 났지만 나머지를 가져오지 않았던 것...근데 런타임 에러도 있기도 했고 설마 나는 number라는 리스트에 모든 값을 저장해나가면서 했는데 그게 용량을 좀 더 많이 쓰이려나 싶어서 number라는 리스트를 두개의 값만 고정해서 원소를 삽입하고 제거하는 방법으로 했다 def solution(n):          number = [0, 1]     for i in range(2, n+1):         number.append(number[0] + number[1])         number.pop(0)              ret.. 2024. 5. 18.
카펫 첫번째 코드 중심의 yellow가 n행에 m열짜리 일 때, brown은 2(n+m)+4라고 생각을 했다 이와 관련하여 n을 (brown-4)/2까지 숫자를 반복해서(나머지 수를 m이라 생각) yellow식에 맞는 값만 추출한다 그리고 이후에 내림차순을 정렬한다 말로 표현하기 어려워서 그림으로 대체한다! 이해가 훨씬 편하다 def solution(brown, yellow): answer = [] range_num = int((brown - 4) / 2) for n in range(range_num): if n * (range_num - n) == yellow: answer.append(n + 2) answer.append(range_num - n + 2) break answer.sort(reverse = .. 2024. 5. 17.
기사단원의 무기 첫번째 코드 약수를 구하는 방법이 포인트겠군...값에 반복해서 나눠서 맞는거면 count에 추가하는 형식이면 약수를 구하는 방법! def solution(number, limit, power):          divisor = []     count = 0          for i in range(1, number+1):         for j in range(1, i+1):             if i%j == 0:                 count += 1         divisor.append(count)          for i in range(number):         if divisor[i] > limit:             divisor[i] = power       .. 2024. 5. 17.
햄버거 만들기 첫번째 코드 4개씩 [1, 2, 3, 1]과 비교한 후에 해당 값이 있으면 다시 처음부터 쭉쭉 비교하는 과정으로 진행했다! def solution(ingredient):     answer = 0     hamburger = [1, 2, 3, 1]     i = 0               while i != len(ingredient):         if ingredient[i:i+4] == hamburger:             answer += 1             del ingredient[i:i+4]             i = 0         else:             i += 1                  return answer 근데 반만 맞고 반은 시간 초과가 뜬다..... 2024. 5. 16.
행렬의 곱셈 첫번째 코드 이전에 행렬을 다루는 방법을 배웠다! "네모난 행렬을 어떻게 만들지?"가 아니라 "리스트 안에 리스트가 있다"라고 생각하는 편이 나한테는 더 편했다 오늘의 문제도 리스트 안에 있는 리스트 안에 어느 위치에 있는 원소들끼리 곱해지는 것인지에 대해서 차근차근 생각했다 그 결과 생각보다 어렵지 않게 차근차근 순서를 맞춰갔다 "너는 얘랑 곱해지고~ 몇번 곱해지고~ 다음에는 얘랑 더해지고~"이런 느낌? for문을 두 개로 끝내고 싶었는데 아무리 생각해도 변해야하는 값들이 3개였다. 그래서 처음으로 for문 안에 for문 안에 for문을 사용했다! for문이 많아지면 헷갈릴 수 있는데 나름 차분하게 잘 푼듯! 뿌듯:) def solution(arr1, arr2): answer = [] for i in .. 2024. 5. 15.
붕대 감기 첫번째 코드 시간이 채워지면 추가로 HP 회복공격을 당하면 HP가 떨어지고0보다 작아지면 거기서 바로 죽음! def solution(bandage, health, attacks):     answer = health     clear = 0     attack_time = []          for i in range(len(attacks)):         attack_time.append(attacks[i][0])          for i in range(attack_time[-1]+1):         if i in attack_time:             pos = attack_time.index(i)             power = attacks[pos][1]             a.. 2024. 5. 15.
728x90