일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 맵
- 슬라이딩 윈도우
- JavaScript
- 문자열
- 투 포인터
- 해시 테이블
- 모던 JavaScript 튜토리얼
- BFS
- 그리디
- 에라토스테네스의 체
- Python
- 그래프
- 플로이드-워셜
- 수학
- 브루트포스
- DP
- SSAFY
- 애드 혹
- 13164
- 누적 합
- 정수론
- 2357
- boj
- 구현
- 정렬
- 싸피
- 세그먼트 트리
- DFS
- 트리
- 이분 탐색
- Today
- Total
목록전체 글 (271)
흙금이네 블로그
아이디어 사전 순으로 가장 앞서는 수열이 되기 위한 규칙을 찾는다. 풀이 #1 (Python) 문어들이 1번과 2번 손을 번갈아 잡는 수열이 사전 순으로 가장 앞선다. 그러나 문어의 수가 홀수인 경우 1번과 2번 손만 사용해서는 원을 만들 수 없으므로 3번 손도 사용한다. 따라서 문어 수를 2로 나눠 소수점 이하를 버린 값만큼 1과 2가 담긴 리스트를 반복하고, 홀수면 3도 추가해 언패킹한다. N = int(input()) print(*[1, 2]*(N//2)+[3]*(N%2)) 문자열로 구현할 수도 있는데, 짝수인 경우 끝에 공백이 생기므로 rstrip 메서드로 공백을 제거한다. print(('1 2 '*(N//2)+'3'*(N%2)).rstrip()) 풀이 #2 (JavaScript) 입력으로 주어지..
자바스크립트의 비교 연산자는 보다 큼(>), 작음(=), 작거나 같음( 1); // true alert(2 == 1); // false alert(2 != 1); // true let result = 3 > 4; alert(result); // false 문자열은 유니코드 순으로 비교하며, 유니코드 순으로 인덱스가 더 큰 문자열이 더 크다고 판단된다. 두 문자열의 글자들을 차례로 비교하여 글자가 더 크거나 작은 문자열이 다른 문자열보다 크거나 작다고 판단되고, 비교가 끝날 때까지 결론이 나지 않으면 길이가 더 긴 문자열이 더 큰 것으로, 길이가 같다면 두 문자열은 같다고 판단된다. alert('Z' > 'A'); // true alert('Glow' > 'Glee'); // true alert('Bee'..
아이디어 동적 계획법으로 세 문자열의 최장 공통 부분 열의 길이를 찾아 나간다. LCS는 Longest Common Subsequence의 약자이기도 하고, Longest Common Substring의 약자이기도 하다. 부분 열(Subsequence)은 어떤 열의 요소들을 원래 순서에 따라 그 일부를 나열한 것이고, 부분 문자열(Substring)은 어떤 문자열 내에 포함된 연속적인 문자열을 의미한다. 따라서 최장 공통 부분 열과 최장 공통 부분 문자열은 공통 부분 요소들의 연속성에 차이가 있다. 부분 열은 연속되지 않은 요소들로도 구성할 수 있지만, 부분 문자열은 연속된 요소들로 구성된다. 이 문제에서는 각 문자열에서 일부 문자들을 순서대로 나열한 문자열 중 가장 긴 공통 문자열의 길이를 찾아야 한다..