Loading...
2024. 6. 26. 03:24

i < j < k < l을 O(N)에 도는 미친 다이나믹 프로그래밍 테크닉

15487번: A[j]-A[i]+A[l]-A[k] (acmicpc.net) 크기 N인 주어진 배열 A에서 i  N은 최대 1000000이라 4중 for문으로 찾는건 당연히 불가능하다 A[j] - A[i]의 최댓값과 A[l] - A[k]의 최댓값을 나눠서 구하면 좋을 것 같다  근데 i  어떻게 구할 수 있을까? 현재 0 ~ j 구간을 보고 있을때 A[j] - A[i]의 최댓값은, A[j] - (A[0] ~ A[j-1]중 최솟값) dp[j] = i  j = 0, 1, 2, 3, ... 가면서 A[j]의 최솟값을 min_value로 항상 갱신해놓는다면, 현재 j에 대해 0~j-1까지 최솟값은 min_value이고 그러므로 A[j] - min_value로 최댓값을 구할 수 있다. 이를 dp[j]에 저장해놓고 ..

게임이론 기본기 익히기1 - 약수 더하기 게임에서 반드시 이기는법

22846번: 인증된 쉬운 게임 (acmicpc.net) 모니터에 1이 쓰여있는데, 두 사람이 선공부터 번갈아가며 모니터에 쓰인 수의 약수를 더해간다. 이 때 제한 k를 초과한 사람이 패배하게 된다. k가 주어질때, 항상 완벽하게 플레이하는 두 사람중 누가 이길까 이런 게임 문제는 보통 1부터 최선의 전략으로 해보면 눈치로 풀면 풀리는 경우가 종종 있더라 실제로 해보면 k = 2,6의 경우에만 선공이 이길 수 있고 나머지는 후공이 반드시 이긴다  k = int(input())if k == 2 or k == 6: print('Kali')else: print('Ringo')  근데 언제까지 이렇게만 할 수는 없지 그리고 이렇게 찾기 힘든 문제도 있더라 개념을 확실히 알아야돼 1) 상..

2024. 6. 22. 00:09

Unity 게임 빌드하기

게임을 완성했다면, 빌드해서 배포해야한다 File - Build Settings    platform을 설정해야하는데, 보통 window니까 windows를 설정하고 위에 Add Open Scenes를 눌러서 현재 게임 Scene을 추가해준다.     samplescene의 체크박스는 해제해주고, 현재 scene만 활성화     기본적으로 게임은 전체화면인데, 화면 크기를 바꿀수도 있다 좌하단에 player settings를 누른다    resolution and presentation을 눌러서, windowed로 설정을 바꿔주고, width, height를 바꿔주면 화면 크기를 바꿀 수 있다    마지막 우하단의 build를 누르면, 폴더 위치를 지정하고 빌드를 할 수 있다      시간이 지나면 wi..

2024. 6. 20. 23:28

kernel method에 대해 간단하게

1. kernel 여러가지 뜻을 가지는 umbrella term: 다른 의미의 용어들을 모두 포괄하는 포괄적 의미를 가지는 용어 전체적으로는 kernel은 essential part, central part라는 뜻에서 여러 분야별로 파생됨 operating system에 쓰이는 것도 kernel   사전적으로 견과류, 씨앗, 알맹이,핵심    linear algebra에서 두 vector space V,W와 linear map L:V → W에 대하여 임의의 v ∈ V가 L(v)=0을 만족시키는  v의 집합을 Ker(L)이라고 부른다   기타 image processing같은 경우 image를 변환시키는 filter를 kernel이라고 부른다는거 기억나는가 kernel을 input image위에서 stri..

2024. 6. 20. 00:44

다이나믹 프로그래밍으로 구하는 복수순열2 - 주어진 개수의 알파벳들만으로 만들 수 있는 문자열의 개수

E - Alphabet Tiles (atcoder.jp) E - Alphabet TilesAtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.atcoder.jp  대문자 알파벳 A,B,C,..,Z의 개수가 주어질때, 이들로 만들 수 있는 길이 1부터 k까지 모든 문자열의 개수를 구하는 문제 길이가 s일때, 각각 A,B,C,...,Z 문자가 a1,a2,a3,...,a26개 있다고 한다면.. 이들을 일렬로 배열하는 복수순열의 개수와 같으므로,  $$\frac{(a1+a2+a3+...+a26)!}{a1!a2!...a26!} = \frac{s!}{a1!..

2024. 6. 18. 22:49

컴퓨터과학에서 말하는 quantization 개념

continuous value는 구간에 존재하는 모든 실수를 나타내고  discrete value는 양자화된 숫자(quantized number)들, 구간 내에 숫자 하나하나를 나타냄 quantization이란 real number로 표현되는 continuous value를 integer multiple(a quantum of the smallest unit)로 표현하는 과정이다  컴퓨터에서는 floating point로 표현되는 continuous value를 가능한 적은 bit의 integer value로 표현하고자 하는 것이 하나의 quantization이다.     이것의 의미는 floating point 대신에 integer value를 이용해서 calculation을 수행한다는 의미다. neu..