Python (67) 썸네일형 리스트형 [프로그래머스] 소수 만들기 - 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(arr): # 답을 담을 배열 answer = [] # 주어진 배열을 하나씩 접근 for i in range(len(arr)): # 처음 인덱스면 무조건 넣기 if i == 0: answer.append(arr[i]) # i가 1 이상일 때 이 전에 들어간 원소가 같지 않을 때만 넣기 if i >= 1: if arr[i - 1] != arr[i]: answer.append(arr[i]) return answer Comment 간단하다. 처음인 경우만 예외처리를 하고 그 이후는 이전의 인덱스의 원소가 같지 않을 때만 답안 리스트에 들어가도록 하면 된다. Referen.. [프로그래머스] 가운데 글자 가져오기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 가운데 글자 가져오기 def solution(s): # 글자의 길이 s_length = len(s) # 글자의 길이가 홀수인 경우 가운데 글자를 뽑아내기 if s_length % 2 == 1: answer = s[s_length // 2] # 글자의 길이가 짝수인 경우 가운데 두 글자를 뽑아내기 if s_length % 2 == 0: answer = s[(s_length // 2) - 1:(s_length // 2) + 1] return answer Comment 홀수인 경우와 짝수인 경우 뽑아내는 글자의 조건이 다르므로 if문으로 분기처리해서 가운데 글자를 뽑아내면 된다. 슬라이싱을 할 때 인덱스의 숫자.. [프로그래머스] 2016년 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 2016년 def solution(a, b): # 진행된 일수 date = 0 # a월 1일까지의 일수 구하기 for i in range(1, a): # i가 7이하일 때 if i = 8: # 홀수이면 30일 if i % 2 == 1: date += 30 continue # 짝수이면 31일 elif i % 2 == 0: date += 31 continue # 주어진 일수 b를 date에 더하기 date += b # 주어진 일수를 1을 빼고 7을 나눈 나머지를 요일에 넣는다 day = (date - 1) % 7 # 2016.1.1이 금요일이므로 if문으로 적절한 요일을 answer에 넣기 # 0이면 일주일 .. 이전 1 2 3 4 5 6 7 8 9 다음