본문 바로가기

프로그래밍65

[프로그래머스/Python] 최댓값과 최솟값 [프로그래머스/Python] 최댓값과 최솟값 ● 문제 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. ● 소스코드 def solution(s): answer = '' tmp = s.split(' ') tmp = [int(x) for x in tmp] answer = answer + str(min(tmp)) + " " + str(max(tmp)) return answer ● 풀이 특별한 알고리즘은 없다. 문자열을 공백을 기준으로 파싱하여.. 2021. 10. 13.
[프로그래머스/Python] 행렬의 곱셈 [프로그래머스/Python] 행렬의 곱셈 ● 문제 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요. ● 소스코드 import numpy as np def solution(arr1, arr2): answer = [[]] arr1 = np.array(arr1) arr2 = np.array(arr2) answer = np.dot(arr1,arr2).tolist() return answer ● 풀이 특별한 알고리즘은 없다. numpy 패키지에서 행렬곱 연산을 지원하는 dot 함수가 있으므로 이를 사용하여 행렬을 곱한다. answer에는 numpy array를 다시 list 타입으로 변환하여 넣어주면 된다. * https://progra.. 2021. 10. 13.
[프로그래머스/Python] 두 정수 사이의 합 [프로그래머스/Python] 두 정수 사이의 합 ● 문제 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. ● 소스코드 def solution(a, b): answer = sum([x for x in range(min(a,b),max(a,b)+1)]) return answer ● 풀이 특별한 알고리즘은 없다. 두 정수 사이의 합을 구한다. * https://programmers.co.kr/learn/courses/30/lessons/12912 코딩테스트 연습 - 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수.. 2021. 10. 12.
[프로그래머스/Python] [1차] 비밀지도 [프로그래머스/Python] [1차] 비밀지도 ● 문제 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. "지도 1"과 "지도 2"는 각각 정수 배열로 암.. 2021. 10. 12.
[프로그래머스/Python] 폰켓몬 [프로그래머스/Python] 폰켓몬 ● 문제 N마리 폰켓몬의 종류 번호가 담긴 배열 nums가 매개변수로 주어질 때, N/2마리의 폰켓몬을 선택하는 방법 중, 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아, 그때의 폰켓몬 종류 번호의 개수를 return 하도록 solution 함수를 완성해주세요. ● 소스코드 def solution(nums): answer = 0 n = len(nums) // 2 # nums list를 set으로 변환하여 중복을 제거 nums = set(nums) answer = min(len(nums),n) return answer ● 풀이 특별한 알고리즘은 없다. nums list를 set으로 변환하여 중복을 제거하면 폰켓몬 종류의 수를 알 수 있다. 최대로 가져갈 수 있는 폰켓몬.. 2021. 10. 11.
[프로그래머스/Python] 3진법 뒤집기 [프로그래머스/Python] 3진법 뒤집기 ● 문제 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. ● 소스코드 def solution(n): answer = 0 cur = '' while n > 0: cur += str(n % 3) n = n // 3 cur = int(cur) count = 0 while cur > 0: answer += (cur % 10) * (3 ** count) cur = cur // 10 count += 1 return answer ● 풀이 특별한 알고리즘은 없다. 정수 n을 3진법으로 표현한 값을 뒤집은 다음 다시 10진법으로 표현한다. * https://p.. 2021. 10. 11.