전체 글

공부와 경험의 기록!
·Algorithm (PS)
https://www.acmicpc.net/problem/14567 14567번: 선수과목 (Prerequisite) 3개의 과목이 있고, 2번 과목을 이수하기 위해서는 1번 과목을 이수해야 하고, 3번 과목을 이수하기 위해서는 2번 과목을 이수해야 한다. www.acmicpc.net 진입차수가 0 이면 queue에 넣어주고, queue에서 빼서 현재 노드 탐색하고, 현재 노드에서 인접한 노드들의 진입차수를 1씩 뺸다. 그리고 진입차수가 0이 되면 다시 queue에 넣어준다. 현재 최소 학기를 구해야 하므로 , queue에 enqueue하는게 몇번째인지 세어주는 count 도 같이 넣어준다. from collections import deque n, m = map(int, input().split()) ..
·Data Engineering
1. Graph 자료 구조 Vertice와 edge들을 가지고 구성되어있는 자료구조이다. edge들은 vertices 간의 연결된것을 의미힌다. 2. 그래프 자료구조를 처리하기 어려운 이유 Graph Data는 복잡하다. : 전통적인 ML, DL 도구들은 simple data types에 특화되어 있다. ex) 이미지 데이터는 같은 구조와 사이즈여서 fixed-size grid graph로 생각할 수 있음 , 순차적인 text or speech 데이터 그래프는 유클리드 공간에 있지 않다. 즉, 좌표계로 표현할 수 없다. 시계열 데이터, 음성, 이미지 데이터가 2차원 및 3차원 유클리드 공간에 매핑을 할 수 있는 것과 달리 그래프 데이터는 매핑하기 어렵다. 그래프는 고정된 형태가 아니다. : 가변적인 크기..
·Algorithm (PS)
https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 숨바꼭질 1 번문제와 문제는 같은데, 업그레이드 된 부분은 수빈이가 동생을 찾을 수 있는 가장 빠른 시간에 대한 경로를 저장해두어야 한다는 것이다. 경로 저장을 위해 note라는 배열을 생성한다. for nx in [now-1, now+1, now*2]: if 0
·Algorithm (PS)
https://www.acmicpc.net/problem/22869 22869번: 징검다리 건너기 (small) $N$개의 돌이 일렬로 나열 되어 있다. $N$개의 돌에는 수 $A_{1} A_{2} ... A_{i} ... A_{N}$로 부여되어 있다. 가장 왼쪽에 있는 돌에서 출발하여 가장 오른쪽에 있는 돌로 건너가려고 한다. 항상 오른쪽으 www.acmicpc.net 징검다리 건너기 (large) 문제와 거의 동일하게 풀었다. 다만 마지막에 dp[-1] 칸이 값이 k보다 작거나 같은지 확인해주면 된다. import sys input = sys.stdin.readline n, k = map(int, input().split()) array = list(map(int, input().split())) I..
클라우드 컴퓨팅 모델 Could 모델은 다음과 같다. 사진은 마이크로소프트 Azure에서 제공한 사진이다. 우리가 자주 들어본 IaaS, PaaS, SaaS가 클라우드 모델의 한 종류에 속하게 된다. On Premises는 회사 및 개인이 직접 전체 시스템을 구축해서 사용하는 모델이며, 따라서 자유도가 가장 높다. 그리고 IaaS -> PaaS -> SaaS 순으로 클라우드 vendor가 제공하는 기능이 많아진다. 최근의 트렌드는 SaaS는 요금이 많이 부과되므로, IaaS , PaaS를 하이브리드로 많이 사용하려고 한다. as a Service 의 뜻 IaaS, PaaS, SaaS 단어에 붙는 as a Service는 무슨 의미이길래 계속 붙는 것일까. 여기서 '서비스'란 , IT Service를 의미..
·Algorithm (PS)
https://www.acmicpc.net/problem/20444 20444번: 색종이와 가위 첫 줄에 정수 n, k가 주어진다. (1 ≤ n ≤ 231-1, 1 ≤ k ≤ 263-1) www.acmicpc.net i) 규칙 찾기 n=4일때 가능한 모든 경우를 보면 (col, row) = (0, 4), (1, 3), (2, 2) (3, 1), (4, 0) 이다 근데 column , row 구분을 안해줘도 되는 이유가, 만들어지는 색종이의 개수만 확인하면 되기 때문이다. -> 즉 0 부터 n//2 까지의 경우만 확인해주면 시간을 줄일 수 있다. 만들어 지는 색종이의 개수는 (col+1) * (row+1) 이다. 또한 찾을 수 있는 규칙은, column 개수와 row의 개수 차이가 클수록 만들어지는 색종이..
·Algorithm (PS)
https://www.acmicpc.net/problem/20164 20164번: 홀수 홀릭 호석 호석이는 짝수랑 홀수 중에서 이니셜이 같은 홀수를 더 좋아한다. 운전을 하던 호석이는 앞차의 번호판이 홀수로 가득할 때 사랑스러움을 느낄 정도이다. 전화번호도 홀수만 있고 싶다. 그렇게 www.acmicpc.net 구현문제이다 또한 별 다른 알고리즘 없이, 세자리 이상인 경우에도 가능한 숫자 조합을 이중 for문으로 모두 만들어 주고 다시 호출했다 그렇지만...!! 내가 놓친부분은 바로 새로운 숫자 조합을 만들 때에도 홀수의 개수를 세는 것이다 ... def check_odd(n): # 1. 각 자리 숫자 중 홀수의 개수를 적는다. temp = 0 for i in n: if int(i) % 2 == 1: t..
·Algorithm (PS)
https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net ㅎㅎ 이분탐색으로 쉽게 풀리는 문제이다 ~ 다만 target 이 되는 숫자는 당연히 조합에 사용하지 못하므로 index를 조절해주는 것이 필요하다 ~~ n = int(input()) array = list(map(int, input().split())) array.sort() answer = 0 def solve(target): global answer left, right = 0, n - 1 while left < righ..
minjiwoo
MJ workspace