본문 바로가기

파이썬98

프로그래머스) 모의고사 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작.. 2022. 9. 4.
프로그래머스) 정수 제곱근 판별 (파이썬) 문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 121 144 3 -1 입출력 예 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. 나의 풀이 def solution(a): x = a**0.5 if x - int(x) == 0: n = (x+1)**2 return int(n) else: return -1 이번 문제는 a의 값이 제곱근일 경우 소수점 .. 2022. 8. 14.
프로그래머스) 자릿수 더하기 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한 사항 N의 범위 : 100,000,000 이하의 자연수 입출력 예 123 6 987 24 나의 풀이 def solution(n): tmp = [] for i in str(n): tmp.append(int(i)) x = sum(tmp) return x 이번 문제는 tmp라는 변수를 만들고 들어오는 숫자들을 리스트로 담아낸 후 리스트의 값을 다 더하였다. 처음에 n // 100으로 하면서 한자리씩 추출하려고 했는데 내가 생각을 너무 복잡하게 했던 것 같다. 2022. 8. 14.
프로그래머스) 행렬의 덧셈 (파이썬) 문제 설명 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 제한 사항 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 입출력 예 [[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] 나의 풀이 def solution(arr1,arr2): x = [] for i,k in zip(arr1,arr2): w = [] for a,b in zip(i,k): w.append(a+b) x.append(w) return x 이번 문제는 처음 for문을 에서 zi.. 2022. 8. 13.
프로그래머스) 직사각형 별찍기 (파이썬) 문제 설명 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한조건 n과 m은 각각 1000 이하인 자연수입니다. 예시 입력 5 3 출력 ***** ***** ***** 나의 풀이 a, b = map(int, input().strip().split(' ')) for i in range(b): print(a*"*") 이번 문제는 중첩 for문을 사용하여 문제를 풀려고 하였다. 근데 생각보다 너무 간단한 문제였다. 처음에 a,b에 입력을 받고, for 문을 이용해서 b만큼 반복하고, a를 곱하여 "*"를 출력하면 되는 것이였다. 2022. 8. 13.
프로그래머스) x만큼 간격이 있는 n개의 숫자 (파이썬) 문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 입출력 예 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4, -8] 나의 풀이 def solution(a,b): tmp = [] for i in range(1,b+1): tmp.append(i*a) return tmp 이번 문제는 for문을 통해서 범위를 1부터 b+1까지 정하였다. 이 후 i의 숫자에 a간격만큼 곱하여 tmp라는 변수에 담아낸다. 이.. 2022. 8. 13.
728x90