본문 바로가기

전체 글

(39)
[매일 한 문제 이상] 프로그래머스 - 행렬 곱 머리 쥐어짜내서 겨우 풀었다. 왠지 파이썬에서 매트릭스 곱 기능 지원해주는 내장함수가 있을거 같다. 이따 시간나면 찾아봐야겠다 다른사람 풀이 ------------------------------ def productMatrix(A, B): return [[sum(a*b for a, b in zip(A_row,B_col)) for B_col in zip(*B)] for A_row in A] ------------------------------ ...?? 문제가 개편되어서 가능한건가.. 이따가 다시 확인 해봐야겠다 ㅠ
[매일 한 문제 이상] 프로그래머스 - H-Index 테스트 케이스 2개가 실패하다가 시작값을 역순으로 해서 루프돌리니 해결되었다. 원인을 몰라서 다른사람 풀이를 보고 이해를 했다.. '-' 다른사람 풀이 -------------------------------- def solution(citations): citations = sorted(citations) l = len(citations) for i in range(l): if citations[i] >= l-i: return l-i return 0 -------------------------------- -------------------------------- def solution(citations): citations.sort(reverse=True) answer = max(map(min, e..
[매일 한 문제 이상] 프로그래머스 - 피보나치 재귀 함수로 해보고 싶었는데 잘 안되서 while문으로 돌려버렸다 '-'... 썩 마음에 드는 모습은 아니지만 일단 완성! 다른사람 풀이 ---------------------------------- def fibonacci(num): a,b = 0,1 for i in range(num): a,b = b,a+b return a ---------------------------------- 문제 개편 전에는 나머지 나누는게 없어도 되었나보다 =_= ---------------------------------- def solution(n): x = 0 a = {0:0, 1:1} for i in range(n+1): a[i+2] = a[i] + a[i+1] return a[n]%1234567 ---------..
[매일 한 문제 이상] 프로그래머스 - 기능 개발 스택/큐 문제라서 최대한 그것만 이용해서 풀어보려 했으나 잘 안되서 중구난방식으로 작성. 일단 통과 시켜버렸다 '-'.. 각 리스트에 있는 자료들을 종합하여 딕셔너리에 넣은 후 그 값들을 다시 리스트에 옮기는 작업을 진행하였다. if else 문을 다소 남발하여 지저분한 코드가 되었지만 어쩃든 성공 다른 사람 풀이를 보니 한없이 초라해진다 ㅎㅎ 다른사람 풀이 ------------------------------------------------ def solution(progresses, speeds): Q=[] for p, s in zip(progresses, speeds): if len(Q)==0 or Q[-1][0] 0: if (progresses[0] + time*speeds[0]) >= 100:..
[매일 한 문제 이상] 프로그래머스 - 최대값과 최솟값 처음에는 문자 하나를 s[0] 으로 min,max 변수에 넣고 만들었더니 '-' 문자가 걸림돌이 되어버렸다. 그래서 리스트 안에 split 하여 문자들을 담은다음 그것들을 비교하여 원하는 출력값을 얻었다. 다른사람 풀이 ---------------- def solution(s): s = list(map(int,s.split())) return str(min(s)) + " " + str(max(s)) ---------------- 문제 푸는동안 min,max 함수가 안떠올라서 if문을 사용했다. 다음에는 min,max를 써봐야겠다
[매일 한 문제 이상] 프로그래머스 - 다음 큰 숫자 조금 귀찮지만 gist에 업로드하여 포스팅하는게 확실히 더 이쁜거 같다. 10진법 수를 2진법으로 변환하여 1만 카운팅하여 비교하는 형식으로 문제를 풀었다. 저번 문제 3진법으로 푸는법을 보다보니 코드를 짜는것도 중요하지만 어떻게 접근하는지도 매우 중요한것 같다. 다른사람 풀이 def nextBigNumber(n): c = bin(n).count('1') for m in range(n+1,1000001): if bin(m).count('1') == c: return m 어느정도 예상은 했지만 python이 binary 변환함수 bin을 지원하는것 같다. 그 내장함수를 이용하여 간단하게 풀어버린 소스코드.. 역시 아는게 힘이다!
[매일 한 문제 이상] 프로그래머스 - 소수 만들기 def miner(n): # 소수 구하기 list_a = [] list_b = [] for num in range(0, n+1): list_a.append(1) i = 2 while i * i < n+1: j = i + i while j < n+1: list_a[j] = 0 j += i i += 1 for num in range(2,n+1): if list_a[num] == 1: list_b.append(num) return list_b def solution(nums): answer = -1 nums.sort() lens = len(nums) sum = nums[lens-1] + nums[lens-2] + nums[lens-3] list_c = miner(sum) count = 0 for i in ra..
[유머 / 짤] 설마했던 니가 나를 떠나 버렸어