-
[프로그래머스] 최대공약수와 최소공배수 - 파이썬(python)
나의 풀이 def solution(n, m): small = 1 big = n*m for i in range(1,min(n,m)+1) : if n%i == 0 and m%i == 0 : small = i for i in range(max(n,m),n*m, small) : if i%n == 0 and i%m == 0 : big = i break return([small,big]) 최대공약수 -> 1부터 min(n,m) 까지 돌면서 n,m 이 나눴을 때 둘다 나머지가 0인 숫자 최소공약수 -> max(n,m) 이상인 최대공약수의 배수를 확인하면서, n,m둘다 나머지를 0으로 나누는 숫자 다른 풀이 def gcd(a, b): return b if a % b == 0 else gcd(b, a % b) def l..
알고리즘/이것저것
2022. 9. 1.
-
[프로그래머스] x만큼 간격이 있는 n개의 숫자 - 파이썬(python)
나의 풀이 def solution(x, n): if x == 0 : return [0 for _ in range(n)] else : return [y for y in range(x,x+n*x,x)] x가 0인 경우를 생각하지 못해서 계속 하나의 테스트케이스를 통과하지 못했다. 기존에는 x==0 인 예외를 처리하지 않아서, range(x,x+n*x,x) 에서 무한루프를 돌게 되었다. 다른 풀이 def number_generator(x, n): return [i * x + x for i in range(n)] x가 2, n이 5인 케이스를 가정해보자. i*x + x는 2, 4, 6, 8, 10 이 된다. x가 0일 때도 조건식이 존재하지 않아 통과되는 좋은 코드이다.
알고리즘/이것저것
2022. 9. 1.
-
[프로그래머스] 행렬의 덧셈 - 파이썬(python)
나의 풀이 def solution(arr1, arr2): answer = [] for i,j in zip(arr1, arr2) : answer.append([x+y for x,y in zip(i,j)]) return answer arr1 이 [[1,2],[2,3]] arr2 가 [[3,4],[5,6]] 일 때를 가정하자. zip함수를 사용하면 for문을 처음 돌 때 i는 [1,2], j는 [3,4] 가 되어 이차원을 일차원로 한 층 벗겨낸다. 이 i와 j의 원소들을 더해 하나의 리스트로 만들어야 하므로, zip함수를 한 번 더 사용해야 한다. 따라서 x는 1 y는 3이 되어 이를 더한 4와 , x는 2 y는 4가 되어 이를 더한 6, 즉 [4,6] 이라는 하나의 list 가 answer 가 append된..
알고리즘/이것저것
2022. 9. 1.
-
[프로그래머스] 2022 KAKAO TECH INTERNSHIP 성격 유형 검사하기 - 파이썬(python)
나의 풀이 def solution(survey, choices): arr ={"R":0, "T":0,"C":0,"F":0,"J":0,"M":0,"A":0,"N":0} result = "" for i,j in zip(survey, choices) : if j 4 : arr[i[1]] += (j - 4) arr2 = list(arr.items()) for i in range(0,len(arr2),2) : if arr2[i+1][1] > arr2[i][1] : result += arr2[i+1][0] else : result += arr2[i][0] return result 각 유형별 알파벳을 key 값으로 0을 value 로 초기화 하였다. 그..
알고리즘/이것저것
2022. 9. 1.