전체 글

공부하고 삽질한 것 정리하는 블로그입니다. 코딩 테스트 대비를 위한 백준-프로그래머스 문제 풀이, pytorch/ubuntu 에러 해결법, 논문 리뷰 등을 올립니다.
· 인공지능
pytorch에서 텐서를 반복하여 확장하는 방법들을 정리하겠음. 1) torch.expand() dim=1인 축에 대해서만 확장이 가능하며, shape을 input으로 받음 사용 예) 여기서, 1이 아닌 차원을 확장하려 하면 runtime error 발생. 해결방법 repeat이나 repeat_interleave 사용하면 됨. cf) expand_as() : ref) https://pytorch.org/docs/stable/generated/torch.Tensor.expand_as.html ref ) https://pytorch.org/docs/stable/generated/torch.Tensor.expand.html 2) torch.repeat() 단순히 인풋 텐서를 원하는 shape으로 차곡차곡 쌓음..
A가 연산이 끝나면 무조건 K가 된다는 전제가 있기 때문에, 그냥 연산횟수를 세면 됨. 문제 https://www.acmicpc.net/problem/25418 25418번: 정수 a를 k로 만들기 7(A), 8(연산 1), 9(연산 1), 18(연산 2), 19(연산 1), 38(연산 2), 76(연산 2), 77(연산 1)이 최소 연산이므로 정답은 7이다. www.acmicpc.net 풀이 import sys input = sys.stdin.readline A, K = map(int,input().split()) cnt = 0 while A= A: K //= 2 else: K -= 1 cnt += 1 print(cnt)
대표적인 섬 찾기 bfs 문제. MAP 자체에 visited를 2 표시해서 풀이함. 0으로 표시할걸.. 생각이 짧았다 문제 https://www.acmicpc.net/problem/1012 풀이 import sys import collections input = sys.stdin.readline move = [(-1,0),(0,1),(1,0),(0,-1)] def bfs(i,j,MAP): q = collections.deque() q.append((i,j)) MAP[i][j] = 2 #visited while q: x,y = q.popleft() for tx,ty in move: nx = x + tx ny = y + ty if 0
· 개발환경
우분투에 서버를 열어서 ssh + vscode 조합으로 사용하고 있는데, 미디어 보는데 한계가 있어서👊 ssh 대신 좀 느려도 rdp 화면공유로 서버 사용하고자 함. tigervnc 같은 패키지를 설치해서 이것저것 설정해줘야 하는 방법도 있지만, 우분투 22.04에서는 기본 remote sharing 옵션에서 rdp를 제공해 줌. vnc와 rdp차이 ref) https://selfish-developer.com/entry/VNC%EC%99%80-RDP VNC와 RDP 원격 데스크톱을 연결하는 프로토콜은 여러 가지가 존재하는데 이중 대표적인 방법이 VNC와 RDP다. 두 프로토콜 모두 단순히 커맨드 라인 창만 띄우는 ssh를 넘어서서 원격 PC의 그래픽 인터페이스 selfish-developer.com 설..
bfs로 풀 수 있는 문제로, 기존 bfs가 보통 2차원 MAP을 기준으로 하는것을 1차원으로 축소한 문제 기존 bfs의 탐색방향이 북,동,남,서 였다면 이 문제는 U,D 로 풀이 문제 https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 풀이 import sys input = sys.stdin.readline import collections F, S, G, U, D = map(int,input().split()) def bfs(): q = collection..
· 개발환경
0. 기본 업데이트 sudo apt-get update 1. conda 설치 파일(sh) 다운받고 설치 아나콘다 홈페이지에 들어가서 본인 OS에 맞는 최신 버전을 다운받기 https://www.anaconda.com/products/distribution#Downloads Anaconda | Anaconda Distribution Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 안되면 아래 링크~ https://www.anaconda.com/ 2. 다운받은 파일 실행하여 설치 cd ~/Down..
ex) 4의 경우 3에서 가능한 모든 경우의 수에 +1을 더하는 경우가 더해짐 1+1+1 +1, 2+1 +1, ... 이런식.. 근데 1, 2, 3을 더할 수 있으니 dp[i-1], dp[i-2], dp[i-3]을 모두 더해주면 모든 경우의 수를 고려하게 되는 것 문제 https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 풀이 import sys input = sys.stdin.readline T = int(input().strip()) dp = [1, 2, 4] def fill_dp(dp, n): ..
기본 동작은 boarding 함수를 통해 수행하고 배의 현재 위치와 다음으로 태울 (min_time_arrv) 손님의 위치를 고려하여 main flow 수행 문제 https://www.acmicpc.net/problem/2065 2065번: 나룻배 강을 사이에 두고 위치한 두 정박장 사이를 한 대의 나룻배가 오가고 있다. 두 정박장은 강을 기준으로 왼쪽(left), 오른쪽(right)으로 구분한다. 제일 처음에는 나룻배가 왼쪽 정박장에 위치해 있 www.acmicpc.net 코드 import sys input = sys.stdin.readline from collections import deque M, t, N = map(int,input().split()) left = deque() right = d..
감자156
감자블로그