Loading...
2020. 12. 21. 21:17

[초보 마크] 마인크래프트 현황 (습격, 주민 교배)

마크에서도 한참 뭔가 할 때 집중하느라 정작 중요한 건 캡처를 하나도 안했다 -0-ㅎ 알라 혼자 있을 때 습격 이벤트가 발생해서 두 번째 마을의 주민이 싹 전멸해버려서 혼자 낑낑대며 카트로 이웃마을 주민을 납치해와서 교배시켰다 이번에는 마을의 부흥을 꿈꾸겠어 왼쪽에 보이는 게 교배소로 주민 두 명을 가둬놨는데 정작 둘은 교배 안하고 밖의 애들이 하고 있다 음식을 서로 나눠먹으며 교배를 한다 만들 수 있는 주민수를 초과하면 번개가 뜨면서 교배에 실패한다 보고있으면 안하더니 뒤돌으니 바로 교배하는 주민들.. 왜이러는 거야 마크 잼민이들이 뛰어놀고 있다ㅋ 나름 귀엽다 침대가 있으면 방방 뛴다 침대 = 집의 수라서 그만큼 더 주민이 생성되기 때문에 잔뜩 만들어놨다 알라 일하는 거 구경 중 마크 접속할 때마다 얘..

[백준 9251번] LCS (파이썬, 최장 공통 부분 수열, DP)

연속된 부분 수열은 아니고 각 문자열을 이루고 있는 문자들 순서만 맞춰서 최장 공통 부분 수열을 구하는 문제이다 a, b 두 문자열의 길이 +1 (각 첫번째 인덱스에 들어가는 값은 초기값인 0이다.) 인덱스 i,j를 비교해서 a와 b의 각 위치에 들어간 문자가 같다면 이전 최대 길이 +1 을 해주면 된다. 1: acaykp , 2: capcak에서 1의 부분 문자인 a(인덱스 0)만 봤을 때 2에서 c인 경우 0, ca인 경우 1 이런식으로 추가되는 문자가 같다면 1 증가시키는 식으로 해결한다. import sys input=sys.stdin.readline a=input().strip() # 엔터키도 들어가지 않도록 b=input().strip() # print(a,len(a)) dp=[[0]*(len..

[백준 1059번] 좋은 구간 (실버 5)

어렵다.. 수학적 계산 들어가는 문제는 다 어렵다ㅠㅠ 어떡하지 a= s 집합이다 집합 가장 앞에 0을 추가하여 예외 상황 (s집합이 1개일 때, s집합에 있는 수보다 n이 작을 때 등)을 처리해준다 s집합의 원소보다 n이 작다면 right=원소-1 이고 n이 더 크다면 다음 구간도 가능한 지 찾는다 left=원소+1 1 2 3 4 5 에서 left=1, right=5, n= 3이라면 가능한 경우의 수는 3을 포함하는 경우의 수 right-left (4가지이고) (1,3) (2,3) (3,4) (3,5) 3이 경계값이 아닌 포함하는 구간은 (n-left)*(right-n)이다 (1,4) (1,5) (2,4) (2,5) import sys input=sys.stdin.readline l=int(input()..

[백준] 1010번 다리놓기 (실버)

m >=n 일 때 n개의 다리를 놓을 수 있는 경우의 수를 구하는 문제이다. n만큼 뽑아서 순서대로 놓으면 되기 때문에 조합의 수를 구하면 된다. 1. 내 풀이 5C2의 경우 n=2이고 m=5 이다. n 의 개수만큼 5*4 5부터 1씩 빼면서 곱해주고 거기서 다시 n인 2부터 n의 개수만큼만 곱한 수를 나눠주면 된다 다시 말하면 5*4 / 2*1 이 답이다. n=3인 경우는 3개씩이니까 5*4*3 / 3*2*1 이다. import sys input=sys.stdin.readline t=int(input()) for _ in range(t): n, m = map(int, input().split()) answer=1; mm=m; for _ in range(n): answer*=mm mm-=1 for i i..

[운영체제 os] 프로세스 동기화 Process Synchronization

동기화 한 시스템에 여러 프로세스가 존재하고(병행적, concurrent) 각 프로세스가 독립적으로 동작한다. (비동기적, asynchronous) 이렇게 프로세스가 비동기적으로(서로의 실행순서나 정보를 공유하지 않고) 여러 프로세스가 동시에 한 자원을 쓰려고 할 때 문제가 발생할 수 있다. 이런 문제를 해결하기 위해 프로세스간 정보를 공유하는 것 혹은 대화하는 것을 동기화라고 한다. 임계영역 (cs, critical section) 공유데이터(shared data)에 접근할 수 있는 코드 영역이다. 둘 이상의 프로세스가 동기에 이 임계영역에 접근할 수 없도록 상호배제를 해줘야 한다. 상호배제 조건 3가지 1. 상호배제: 임계 영역 안에 프로세스가 있을 때 다른 프로세스의 진입을 막는다. 2. 진행 pr..

[React Project] 개인 기부 플랫폼 서비스 (whowants)

배포 주소: whowants.ga/ gitHub 주소: github.com/ozirapsu-web-server/whowants-web.git ozirapsu-web-server/whowants-web react js web project for whowants. Contribute to ozirapsu-web-server/whowants-web development by creating an account on GitHub. github.com 기술 스택: ReactJs, Redux, styled-components, gitHub Actions, S3 모바일 ,태블릿, 웹의 반응형 디자인을 지원합니다. 사이드 프로젝트로 기획, 디자인, 서버 파트와 같이 개발하고 있는 개인 기부 플랫폼 서비스입니다 웹은 ..

[LeetCode] 347. Top K Frequent elements (javascript)

/** * @param {number[]} nums * @param {number} k * @return {number[]} */ var topKFrequent = function(nums, k) { const map=new Map(); for(const num of nums){ if(!map.has(num)){ map.set(num,1) }else{ map.set(num,map.get(num)+1); } } const arr=[]; for(const [key,value] of map){ arr.push([key,value]); } arr.sort((a,b)=>b[1]-a[1]); const answer=[]; for(let i=0;i

[LeetCode]3. Longest Substring without repeating characters (javascript)

if(checked[s[i]]) 부분에서 위치가 0일때도 안나왔던 것처럼 인식해서 애먹었다; ㅠ undefined로 명시적으로 처리해줬다. Input: s = "abcabcbb" 뒤의 a가 등장하면 a의 위치는 3으로 바뀌고 문자열 시작위치는 이전 a의 뒤인 b(1)이 되어 가장 긴 문자열은 bca가 된다. ** 찾아보니 Map을 사용해서 풀면 코드를 더 간단히 할 수 있을 것 같다 /** * @param {string} s * @return {number} */ var lengthOfLongestSubstring = function(s) { const checked={}; let result=0; let start=0; for(let i=0;i

[LeetCode] 771. Jewels and Stones (javascript)

/** * @param {string} J * @param {string} S * @return {number} */ var numJewelsInStones = function(J, S) { const cnt={}; for(let i=0;i

[LeetCode] 739. Daily Temperatures (javascript)

현재 위치의 인덱스를 stack(배열)에 집어넣는다. 만약 현재의 온도가 stack에 들어있는 온도(혹은 온도들)보다 높다면 그만큼 빼서 위치의 차만큼 정답 배열을 갱신한다. /** * @param {number[]} T * @return {number[]} */ var dailyTemperatures = function(T) { const answer=Array(T.length).fill(0); const stack=[]; for(let i=0;i