Loading...

부분문자열 필수 트릭 - doubling cyclic substring trick

24597번: Reversibly Cyclic Strings (acmicpc.net)  문자열 s의 cyclic substring이라는 것은 s를 rotate했을때 부분문자열 t를 말한다. 'fatcat'에서 'atf'는 fatcat에서 왼쪽으로 1칸 rotate하면 atcatf인데 여기에 부분문자열로 있다 만약 s의 모든 부분문자열 t에 대하여 t를 뒤집은 것이 s의 cyclic substring이라면 s를 'Internally Reversibly Cyclic'이라고 정의한다. 주어진 s가 Internally Reversibly Cyclic인지 판단하는 문제  어떤 부분 문자열 t가 s의 cyclic substring이라는 것을 어떻게 알 수 있을까? 한칸 한칸씩 roate해서 판단해봐야할까? fatc..

2024. 5. 8. 23:28

적어도 1명 이상이 자기 자신 것을 그대로 가져갈 확률은?(교란순열의 수렴)

13531번: Secret Santa (acmicpc.net)  n명의 사람이 모자에 이름을 쓰고, 한번 섞은 다음에 다시 가져가는데 적어도 1명 이상이 자기 자신 것을 그대로 가져갈 확률을 구하는 문제 https://deepdata.tistory.com/946 자기 것을 다시 갖지 않고 나눠주는 경우의 수 교란순열(완전순열) 배우기1. 문제 1947번: 선물 전달 (acmicpc.net) 1947번: 선물 전달 경우의 수를 1,000,000,000으로 나눈 나머지를 첫째 줄에 출력한다. www.acmicpc.net 2. 풀이 PS를 위한 수학 - 교란 순열(완전순열) - 와 이게 에러가deepdata.tistory.com 1 - n명의 사람이 모두 자기 자신 것을 가져가지 않는 확률 = 적어도 1명 이..

2024. 5. 8. 22:57

3D 이해하기2 - 3D를 표현하는 방법

1. 2d image 2d image는 image의 각 pixel value가 2d array에 저장됨 RGB 이미지인 경우는 3 channel의 array가 존재하여 각 채널에 R,G,B의 pixel value가 저장   이미지의 부분에 대응하는 pixel값이 저장 컬러 이미지면 3 channel로 구성  2. 3d representation 3d 표현은 2d image와는 다르게 유일하지 않다  1) multi-view image 3d 물체를 여러 각도에서 사진 찍어서 각각을 전부 보관함    2) volumetric(voxel) 2d 이미지 표현법과 가장 비슷한 방법? 3d space의 물체를 적절하게 grid로 나눠서 해당 grid에 3d 물체가 차지하면 1 아니면 0의 binary로 표현?   ..

2024. 5. 8. 02:49

슬라이딩 윈도우를 이용한 최댓값 찾기(sliding window maximum, Deque Range Maximum Trick)

1. 문제 배열 A에서 길이가 K인 모든 연속하는 부분배열내에서 최댓값을 찾는 문제 [1,2,3,1,4,5]이고 K = 3인 경우를 생각해보자. [1,2,3]에서 최댓값은 3 [2,3,1]에서 최댓값은 3 [3,1,4]에서 최댓값은 4 [1,4,5]에서 최댓값은 5 배열의 크기가 작으면 매우 쉬운 문제지만, 배열의 크기가 크면 상당히 어려운 문제다. 투포인터로 구간의 시작과 끝을 잡고 첫 구간에서는 어떻게 O(K)로 최댓값을 찾아 놓은 다음.. 다음 구간으로 이동할텐데, 시작과 끝의 위치를 아니까, 시작 쪽의 원소를 버릴거고 끝의 원소를 추가할거고... 그런다고 하더라도 최댓값이 뭔지를 어떻게 알지? 운 좋게 시작과 끝에 최댓값이 있다고 하더라도... 구간 중간에 최댓값이 있는거라면 어쨌든 매 구간마다 ..

2024. 5. 8. 01:26

3D 이해하기 - 우리는 세상을 어떻게 관찰하는가?

1. importance 우리는 3D 세상에서 살고 있다 앞으로 만들 AI agent나 AI robot은 사람들에게 도움을 주기 위해서 3D 세계를 활보해야한다. AI가 3D 세상을 이해하게 만들기 위해서, 실제 세계와 interaction할 수 있는 AI를 만들기 위해서, 3D를 잘 이해하는 것은 중요하다.  2. AR/VR application 게임부터 광고, 군사훈련까지 현실에서 경험하기 어려운 것을 3D 가상세계에서 경험하게 만들어줌   3. 3D printing 3D 공간을 잘 이해하면 3D printing으로 효율적으로 3D 제품을 만들어내고 심지어 건물도 지을 수 있다고?    4. medical application 우리 몸의 구성 성분은 전부 3D로 구성되어 있다 뇌의 뉴런활동을 시각화 ..

돌 무더기에서 팰린드롬(palindrome)인 정수 개수만큼 가져갈 때 이기는 방법

31648번: Palindrome Game (acmicpc.net)   돌 무더기에 s개의 돌이 있는데, A,B가 양의 정수 x개만큼 돌을 가져간다. 여기서 x는 palindrome이어야 한다.  palindrome은 앞에서 읽어도 뒤에서 읽어도 같은 수이다. 예를 들어 1, 121, 9009는 palindrome이다. 앞에 0을 붙이는 것은 허용하지 않는다. 예를 들어 990은 palindrome이 아니다. s가 주어질때, 최선을 다해 게임하는 둘에 대해 선공이 이기는지 후공이 이기는지 판단 -----------------------------------------------------------------------------------------------------------------------..