본문 바로가기

programming study/Algorithm

(275)
[프로그래머스] 두 정수 사이의 합 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 두 정수 사이의 합 def solution(a, b): # 둘 중 큰 수를 x에 넣기 if a > b: x = a y = b else: x = b y = a answer = 0 for i in range(y, x + 1): answer += i return answer Comment if문으로 분기하여 풀었다. Reference 프로그래머스
[프로그래머스] 나누어 떨어지는 숫자 배열 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 나누어 떨어지는 숫자 배열 def solution(arr, divisor): # divisor로 나누어 떨어지는 요소를 넣을 배열 answer = [] # arr을 하나씩 탐색하여 나누어 떨어지는 배열을 answer에 넣기 for i in range(len(arr)): if arr[i] % divisor == 0: answer.append(arr[i]) # answer 배열이 비어있는경우 -1을 넣기 if len(answer) == 0: answer.append(-1) else: # 비어있지 않은 경우 오름차순 정렬 answer.sort() return answer Comment for문으로 하나씩 접근하..
[프로그래머스] 소수 만들기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 소수 만들기 def solution(nums): answer = 0 # 주어진 숫자 리스트의 길이 nums_len = len(nums) # 합을 넣을 변수 nums_sum = 0 # 소수 만들기 # 3중 for문으로 조합을 만들어 합구하기 for i in range(nums_len): for j in range(i + 1, nums_len): for k in range(j + 1, nums_len): # 조합의 합 nums_sum = nums[i] + nums[j] + nums[k] # 구해진 합을 기준으로 2부터 자기자신 -1 까지 나누었을 때 0이 되면 소수가 아니다. for l in range(2, ..
[프로그래머스] 3진법 뒤집기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 3진법 뒤집기 def solution(n): # 입력받은 수 n을 3진법으로 변환하기 # 3진수를 저장하는 변수(문자열) ternary = '' # 3진수 변환 # n이 3보다 크면 계속 나누기 while n >= 3: # 나머지는 ternary에 넣기(문자열 변환) ternary += str(n % 3) # n에 3을 나눈 몫을 넣기 n = n // 3 # 3으로 계속 나눈 몫이 3이하이면 ternary에 넣기(문자열 변환) ternary += str(n) # 위의 로직은 앞뒤가 반전된 3진수를 만들게 된다. # ternary는 문자열이므로 바로 10진법으로 변환 answer = int(ternary, ..
[프로그래머스] 두 개 뽑아서 더하기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 두 개 뽑아서 더하기 def solution(numbers): # 답을 담을 배열 answer = [] # 주어진 숫자로 만들 수 있는 모든 숫자 배열 (중복 허용) numbers_sum_overlap = [] # 주어진 숫자들로 만들 수 있는 모든 숫자 구해보기 # 이중 for문으로 자기 자신과 같은 경우를 제외하고 다른 인덱스 더하기 for i in range(len(numbers)): for j in range(len(numbers)): # 인덱스가 같은 경우 if i == j: continue # 인덱스가 다른 경우 더하기 numbers_sum_overlap.append(numbers[i] + nu..
[프로그래머스] 예산 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 예산 def solution(d, budget): # 몇개에 부서에 예산을 줄 수 있는지 세는 변수 answer = 0 # 가장 작은 수부터 적용해야 최대 부서 수를 구할 수 있으므로 내림차순으로 정렬(pop을 사용) d.sort(reverse=True) # while문으로 d가 빌 때까지 while d: # 현재 시점에서 가장 예산이 적은 부서 d_min = d.pop() # 남은 예산이 부서 예산보다 작으면 중단 if d_min > budget: break # 크거나 작으면 실행 elif d_min
[프로그래머스] 음양 더하기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 음양 더하기 def solution(absolutes, signs): # signs가 참이면 해당 absolutes의 수가 양수, 거짓이면 음수 # 주어진 수를 하나씩 접근 # 양수, 음수가 적용된 실제 합 answer = 0 for i in range(len(absolutes)): # 참인경우 양수이므로 더하기 if signs[i]: answer += absolutes[i] # 거짓인 경우 음수이므로 빼기 else: answer -= absolutes[i] return answer Comment absolutes와 signs의 길이는 같으므로 단일 for문으로 동일한 인덱스에서 signs이 ture이면 ..
[프로그래머스] 내적 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 내적 def solution(a, b): # 내적을 담을 변수 dot_product = 0 # 내적 구하기 # a, b는 길이가 같은 배열 # 길이만큼 주어진 식대로 구하기 for i in range(len(a)): dot_product += a[i] * b[i] answer = dot_product return answer Comment 문제에 주어진 내적의 식 대로 풀면 된다. Reference 프로그래머스