본문 바로가기

분류 전체보기243

[프로그래머스💯] 코딩테스트 연습 > 연습문제 > 행렬의 곱셈 해답) import numpy as np def solution(arr1, arr2): answer = np.dot(np.array(arr1), np.array(arr2)) return answer.tolist() 풀이) 사실 직접 코딩으로도 구현할 수 있는데. numpy라는 라이브러리는 다차원배열의 계산을 매우 편하게 해준다. dot 혹은 matmul 을 통해 바로 곱셈을 구현할 수 있다. tolist() 는 numpy 형태의 배열(혹은벡터) 를 다시 리스트 타입으로 만들어준다. * 이 문제 및 로고의 저작권은 Programmers에 있습니다. 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 2020. 4. 7.
[프로그래머스💯] 코딩테스트 연습 > 연습문제 > 행렬의 덧셈 해답) def solution(arr1, arr2): answer = [] for _arr1, _arr2, in zip(arr1, arr2): row = [] for __arr1, __arr2 in zip(_arr1, _arr2): row.append(__arr1 + __arr2) answer.append(row) return answer 풀이) * zip 함수는 이터러블 2개를 묶어 튜플 이터러블로 만들어준다. list(zip([1,2,3] , ['a','b','c'])) = [(1,'a'), (2,'b'), (3,'c')] row 에다가 append 하고 총 행렬에 row들을 append 한다. * 이 문제 및 로고의 저작권은 Programmers에 있습니다. 출처: 프로그래머스 코딩 테스트 연습, .. 2020. 4. 7.
[AlgoSpot🔴] 알고스팟 > 출전 순서 정하기 / Pyton 문제풀이 해답) import sys def rl(): return sys.stdin.readline() def solution(Russia, Korea): Russia.sort() Korea.sort() win = 0 for Ru in Russia: for i, Ko in enumerate(Korea): if Ru 2020. 3. 31.
[프로그래머스💯] 코딩테스트 연습 > 연습문제 > 야근 지수 / Python 문제풀이 해답) import heapq def solution(n, works): maxHeap = [] for w in works: heapq.heappush(maxHeap, -w) while n > 0: DoWork = -heapq.heappop(maxHeap) - 1 if DoWork == -1: # 할일을 다함 return 0 heapq.heappush(maxHeap, -DoWork) n -= 1 res = 0 for fatigue in maxHeap: # 남은 일 피로도 계산 res += fatigue ** 2 return res 풀이) 3단계 문제치고 난이도가 쉽다. 1. 가장 많이 남은일을 먼저하는게 항상 최종 피로도를 줄여준다. (그리디하게 구현 가능) 2. 그러므로 현재 가장 많이 남은일을 계속 .. 2020. 3. 29.
[프로토콜] ARP spoofing 이란? / ARP poisoning / ARP Address Resolution Protocol 의 약자로서, 말그대로 주소를 결정해줍니다. 어떤 주소를 결정해주냐? 같은 IP 를 쓰는 여러 장치들이 있겠죠? 그 중에 통신의 대상이 될 장치의 MAC 주소가 필요합니다. IP 주소를 받아 MAC주소(장치의 직접적인주소)를 결정해줍니다. ARP 통신방법 ARP는 기본적으로 MAC 주소를 얻기 위해 IP를 BroadCast 방식으로 Target으로 보냅니다. (특정 상황에 따라 Unicast로 보내는 경우도 있습니다.) 쉽게 말하자면, 네트워크 내에 모든 이들에게 요청을 하는 것이죠. (하나에게만 보내는것은 unicast) 그 중에 필요한 MAC주소를 가지고 있는 특정 장치의 Response를 이용해 MAC 주소를 얻어냅니다. 그럼, 이때 받았던 .. 2020. 3. 23.
[프로그래머스💯] 코딩테스트 연습 > 연습문제 > 하노이의 탑 / Python 문제풀이 해답) def solution(n): res = [] blocks = [1, 2, 3] def getLastBlock(block1, block2): for b in blocks: if b != block1 and b != block2: return b def move(blockCount, start, dest): if blockCount == 1: return res.append([start, dest]) lastBlock = getLastBlock(start, dest) move(blockCount-1, start, lastBlock) # 일단 나머지 블록에 옮긴다. res.append([start, dest]) # 맨밑 블록 하나를 목적지에올린다. move(blockCount-1, lastBlock,.. 2020. 3. 22.