안녕하세요 :) 김은빈입니다.
대덕SW마이스터고등학교 3학년으로 재학하면서 데브옵스를 공부하고 있는 학생입니다.
- 저는 새로운 것을 알아가고 공부하는 것을 좋아합니다.
- 상황을 다양한 시각으로 바라보면서 오래 생각하려 노력합니다.
- 생각을 글로 (또는 코드로) 체계적으로 정리하는 데 재미를 느낍니다.
- 꾸밈없이 솔직하면서도 성숙한 사람이 되고 싶습니다.
잘 정리된 모습은 아니지만 제가 공부하고 생각한 내용을 기록하는 공간입니다.
들러주셔서 감사합니다. 좋은 하루 되세요!
최신글자막 파일 포맷인 SRT, SBV, VTT, SMI에 대해 알아보자.
SRT (SubRip Text)
SRT는 가장 널리 사용되는 자막 파일 형식 중 하나이다. 단순하면서도 효과적인 구조로 많은 미디어 플레이어와 편집 소프트웨어에서 지원된다.
특징:
텍스트 기반으로 쉽게 편집 가능
대부분의 미디어 플레이어와 호환
자막 번호 정보가 있어 순서 파악이 용이
기본적인 서식 지정(볼드, 이탤릭, 색상) 지원 (일부 플레이어에서만 인식)
구조:
자막 번호
시작 시간 --종료 시간
자막 텍스트
빈 줄 (자막 구분)
예시:
1
00:00:01,000 --00:00:04,000
안녕하세요, 여러분.
2
00:00:04,500 --00:00:06,500
오늘은 자막 파일 형식에 대해 알아보겠습니다.
보드판 크기를 N이라 두자.
N을 6으로 나눈 나머지가 2 또는 3이 아니라면, 1부터 N까지의 수를 (짝수 오름차순) + (홀수 오름차순)으로 나열하도록 배치하면 된다.
N을 6으로 나눈 나머지가 2이라면, 앞선 홀수 오름차순 리스트에서 1과 3의 위치를 바꾸고 5를 맨 뒤로 보낸다.
즉 (짝수 오름차순), (3, 1, 7, 9, ...., 5) 꼴이 될 것이다.
N을 6으로 나눈 나머지가 3이라면, 2를 짝수 오름차순 리스트의 맨 끝으로 보내고 1, 3을
구간 업데이트(덧셈)가 있을 때 쿼리마다 구간의 gcd를 구하는 문제이다.
각 구간별 gcd를 세그먼트 트리로 저장하는 일반적인 방법으로는 시간초과가 발생한다. 구간에 수를 더하면 gcd를 다 다시 계산해야하기 때문이다.
수를 더했을 때 gcd를 모두 재계산하는 것을 막기 위해선 gcd(a, b) = gcd(a, a-b)
라는 성질을 활용해야한다. 이 식을 확장하면 gcd(a, b, c, d, e) = gcd(a, |b-a|, |c-b|, |d-c|, |e-d|)
라는 것을 알 수 있다.
세그먼트 트리의 각 노드에서 gcd(|b-a|, |c-b|, |d-c|, |e-d|)
를 관리한다고 했을 때, b, c, d에 x만큼을 더