[Baekjoon] 2606: 바이러스 - (C3, S3) DFS
·
Baekjoon
문제신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다.어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 출..
[PyTorch] Linear Regression(선형 회귀) - Autograd
·
PyTorch
이전 포스트에서 다루었던 Gradent Tensor에 이어 간단한 선형회귀식을 구현해본다.  선형회귀는 (x, y)로 정의되는 data set에 대해 각 데이터 (x, y)와 최단 거리를 이루는 직선을 찾는 것이다. 즉, 입력 x와 출력 y 사이의 관계를 모델링한다.  여기서는 단순하게 $y=wx+b$를 모델링하며, $w$는 가중치(weight), $b$는 편향(bias)이다. 선형회귀의 학습 목표는 실제 값 $y$와 예측값 $\hat{y}$간의 오차를 최소화하는 것이다. 이를 위해 손실함수로는 일반적으로 평균 제곱 오차(MSE)를 사용한다. $$L(w, b) = \frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2$$이때 $y_i$는 실제값이며 $\hat{y} = wx_{i}..
[Baekjoon] 1463: 1로 만들기 - (C3, S3) DP
·
Baekjoon
문제정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.  1. X가 3으로 나누어 떨어지면, 3으로 나눈다.  2. X가 2로 나누어 떨어지면, 2로 나눈다.  3. 1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오.입력첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.출력첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다.1463번: 1로 만들기 시간제한이 0.15초로, 매우 짧다.  각 연산에 대해 $a_n$을 n을 1로 만들기 위해 필요한 연산의 개수라고 정의하면 다음과 같다 .X가 3으로 나누어 떨어지면, 3으로 나눈다. 연산: n -> n / 3 => $a_n = a_{n/..
[Baekjoon] 17219: 비밀번호 찾기 - (C3, S4) std::unordered_map
·
Baekjoon
문제2019 HEPC - MAVEN League의 "비밀번호 만들기"와 같은 방식으로 비밀번호를 만든 경민이는 한 가지 문제점을 발견하였다. 비밀번호가 랜덤으로 만들어져서 기억을 못 한다는 것이었다! 그래서 경민이는 메모장에 사이트의 주소와 비밀번호를 저장해두기로 했다. 하지만 컴맹인 경민이는 메모장에서 찾기 기능을 활용하지 못하고 직접 눈으로 사이트의 주소와 비밀번호를 찾았다. 메모장에 저장된 사이트의 수가 늘어나면서 경민이는 비밀번호를 찾는 일에 시간을 너무 많이 쓰게 되었다. 이를 딱하게 여긴 문석이는 경민이를 위해 메모장에서 비밀번호를 찾는 프로그램을 만들기로 결심하였다! 문석이를 도와 경민이의 메모장에서 비밀번호를 찾아주는 프로그램을 만들어보자.입력첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ ..
[Linux] Linux Terminal on Window - WSL
·
Linux
컴퓨터시스템프로그래밍의 복습 겸, 임베디드 시스템쪽으로 진로를 정했기에 리눅스에 익숙해져야는데, 가상 머신을 설치하거나 OS를 설치하는 것 등 모두 쉽지 않아 쉽사리 해오지 못하였다. 그러던 중 관련 글을 발견하여 이를 따라 윈도우에서 Linix 터미널을 사용할 수 있게 설정해보았다.  Powershell을 관리자 권한으로 실행하고, wsl --install 명령어를 실행해서 WSL를 설치한다. 그리고 다음의 두 명령어를 실행한다. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachin..
[Baekjoon] 11047: (C3, S4) 동전 0
·
Baekjoon
문제준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000)둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)출력첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다.11047번: 동전 0 그다지 특별할 것이 없어서 코드만 기록한다. 동전 가치 중 큰 값으로 K를 나눈 몫이 필요한 동전의 가치가 되며, K를 업데이트한다. 모든 예외상황은 없다고..
zerogod-ai-dev
zerogod 코코딩딩