티스토리 뷰
문제 링크
https://algospot.com/judge/problem/read/WILDCARD
먼저 와일드카드에 * 가 없는 경우에는 두 문자열을 비교하기가 쉽습니다.
두 문자열의 첫번째 인덱스부터 비교하여 두 문자가 같거나 와일드카드가 ? 인 경우는 다음 인덱스를 재귀함수로 넘겨서 확인하면 됩니다.
하지만 와일드카드에 * 가 포함되면 * 에 문자열이 얼마나 대응하는지를 확인해야 합니다.
위와 같은 와일드카드가 있을 때 첫 번째 papa 는 왼쪽 * 가 0개 오른쪽 * 가 apa에 대응하고
두 번째 papa는 왼쪽 * 가 pa, 오른쪽 * 가 a에 대응합니다.
따라서 와일드카드의 현재 인덱스가 * 이면
1. 와일드카드 현재 인덱스 + 1, 비교문자열 현재 인덱스
2. 와일드카드 현재 인덱스, 비교문자열 현재 인덱스+1
이 두가지 경우를 재귀함수로 탐색해서 다음 각 문자들을 비교해 나가야합니다.
1번은 * 가 아무것도 대응하지 않는 경우이고
2번은 * 가 1개 이상의 문자에 대응하는 경우입니다.
구현 코드
'Coding Test > 알고스팟' 카테고리의 다른 글
[C++] 알고스팟/동적계획법 - Longest Increasing Sequence (0) | 2020.08.18 |
---|---|
[C++] 알고스팟/동적계획법 - 삼각형 위의 최대 경로 (0) | 2020.08.17 |
[C++] 알고스팟/동적계획법 - 외발 뛰기 (0) | 2020.08.15 |
[C++] 알고스팟/분할정복 - 팬미팅 (0) | 2020.08.09 |
[C++] 알고스팟/분할정복 - 울타리 잘라내기 (0) | 2020.03.31 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 알고스팟
- 완전탐색
- 삼각형 위의 최대 경로
- HDFS
- 외발 뛰기
- C++
- 하둡
- 백준
- HiveQL
- 스파크
- 하이브
- pyspark
- 합친 lis
- Sqoop
- Django
- import
- python
- 팰린드롬 구하기
- 삼각형 위의 최대 경로 수 세기
- microwaving lunch boxes
- 두니발 박사의 탈옥
- hive
- 코딩인터뷰 완전분석
- 배열과 문자열
- Jaeha's Safe
- 2225
- 종만북
- 분할정복
- 출전 순서 정하기
- Hadoop
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함