전체 글

    [Python] 벡터와 행렬의 연산 (완)

    [Python] 벡터와 행렬의 연산(1) 2.2 벡터와 행렬의 연산 — 데이터 사이언스 스쿨 벡터와 행렬도 숫자처럼 덧셈, 뺄셈, 곱셈 등의 연산을 할 수 있다. 벡터와 행렬의 연산을 이용하면 대량의 데이터에 대한 계산을 간단한 수식으 return-value.tistory.com 행렬의 교환 법칙과 분배 법칙 행렬의 곱셈은 교환 법칙이 성립하지 않으나 덧셈/뺄셈의 분배 법칙은 성립한다. 전치 연산이나 역행렬에서도 덧셈/뺄셈의 분배 법칙이 성립한다. 또한 곱셈에서도 분배 법칙이 성립하지만 곱셈의 순서가 바뀐다. 연습 문제 2.2.5 -> N x 1 @ 1 x N -> N x N -> XT : M x N, M x N @ N x 1 - > M x 1 (3) 다음 코드를 실행하면 붓꽃 전체 데이터를 모두 벡터로..

    [프로그래머스 C++] 예상 대진표

    문제 : 예상 대진표 문제 설명 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음 라운드에서 2번을 부여받게 됩니다. 게임은 최종 한 명이 남을 때까지 진행됩니다. 이때, 처음 라운드에서 A번을 가진 참가자는 경쟁자로 생각하..

    [Python] 벡터와 행렬의 연산(1)

    2.2 벡터와 행렬의 연산 — 데이터 사이언스 스쿨 벡터와 행렬도 숫자처럼 덧셈, 뺄셈, 곱셈 등의 연산을 할 수 있다. 벡터와 행렬의 연산을 이용하면 대량의 데이터에 대한 계산을 간단한 수식으로 나타낼 수 있다. 물론 벡터와 행렬에 대한 연 datascienceschool.net ※ 위 내용의 복습 글입니다. 벡터의 사칙연산 Numpy에서 기본적인 같은 크기의 벡터들은 사칙연산을 지원한다. 두 벡터가 행렬에서 같은 위치에 있는 원소끼리 사칙연산이 가능하다. 주의하자 행렬의 사칙연산과는 다른 연산이다. 이를 요소별(element-wise) 연산이라 한다. np.array([[5,6],[7,8]]) + np.array([[10,20],[30,40]]) - np.array([[1,2],[3,4]]) 예외로 ..

    [프로그래머스 C++] 영어 끝말잇기

    문제 : 영어 끝말잇기 문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다. 2번 사람이 ..

    [Python] 데이터와 행렬

    2.1 데이터와 행렬 — 데이터 사이언스 스쿨 선형대수(linear algebra)는 데이터 분석에 필요한 각종 계산을 돕는 학문이다. 데이터 분석을 하려면 수많은 숫자로 이루어진 데이터를 다루어야 한다. 하나의 데이터가 수십 개에서 수만 개의 숫 datascienceschool.net ※ 위 내용의 복습 글입니다. 숫자 이미지 2차원 데이터 사이킷런 패키지에서 필기된 0과 1의 데이터들을 2차원으로 가져와 보자. from sklearn.datasets import load_digits digits = load_digits() samples = [0,10,20,30,1,11,21,31] d = [] for i in range(8): d.append(digits.images[samples[i]]) plt...

    [프로그래머스 C++] 점프와 순간이동

    문제 : 점프와 순간이동 문제 설명 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 줄이기 위해 점프로 이동하는 것은 최소로 하려고 합니다. 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용..

    [프로그래머스 C++] 구명보트

    문제 : 구명보트 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다. 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution ..

    [프로그래머스 C++] 소수 만들기

    문제 : 소수 만들기 문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예 nums result [1,2,3,4] 1 [1,2,7,6,4] 4 분석 배열에서 숫자 3개를 선택하는 방법은 3중 for문을 이용하면 된다. 또한 소수를 판단하는 부분은 에라토스테네스의 체를 이용하면 된다. 구현 ..