일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 소프트웨어 아카데미
- 독일
- 몽골 고기
- 교환학생
- 게르
- 테를지
- ICT봉사단
- 여행
- algorithm
- 칭기스칸 동상
- 알고리즘
- 헬스
- 월드프렌즈 ICT 봉사단
- 몽골 헬스장
- Python
- LG글로벌챌린저
- 초원
- 담슈타트
- 백준
- 칭기즈칸
- 몽골
- 코로나
- 월드프렌즈
- 몽골요리
- 아부다비
- 한 줄로 서기
- SWEA
- 울란바토르
- 파이썬
- 테를지국립공원
Archives
- Today
- Total
맛있는물회
[맛있는물회] <SWEA알고리즘> 4864번 "문자열 비교" 본문
문제 조건
두 개의 문자열 str1과 str2가 주어진다. 문자열 str2 안에 str1과 일치하는 부분이 있는지 찾는 프로그램을 만드시오.
예를 들어 두 개의 문자열이 다음과 같이 주어질 때, 첫 문자열이 두번째에 존재하면 1, 존재하지 않으면 0을 출력한다.
ABC
ZZZZZABCZZZZZ
두번째 문자열에 첫번째 문자열과 일치하는 부분이 있으므로 1을 출력.
ABC
ZZZZAZBCZZZZZ
문자열이 일치하지 않으므로 0을 출력.
Input
첫 줄에 테스트 케이스 개수 T가 주어진다. (1≤T≤50)
다음 줄부터 테스트 케이스 별로 길이가 N인 문자열 str1과 길이가 M인 str2가 각각 다른 줄에 주어집니다. (5≤N≤100, 10≤M≤1000, N≤M)
Output
각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다.
생각한 아이디어
아주 간단한 패턴 매칭 문제이다.
파이썬에서는
if A in B 라는 식으로 아주 간단하게 알아낼 수 있다.
파이썬은 문자열을 처리하는데 있어서 아주 아주 효율적인 언어인듯하다.
소스코드
T = int(input())
for TC in range(1, T+1):
str1 = str(input())
str2 = str(input())
if str1 in str2:
print("#%d %d" %(TC,1))
else :
print("#%d %d" %(TC,0))
*파이썬 문법 정리
- 파이썬에서는 Match 알고리즘을 str1 in str2를 사용하여 아주 간단하게 사용가능하다.
- find() 함수를 사용한다면 match 여부는 물론이고 match되는 Index까지 알아낼 수 있다.
'IT > 알고리즘' 카테고리의 다른 글
[맛있는물회] <SWEA알고리즘> 4865번 "글자수" (0) | 2020.04.02 |
---|---|
[맛있는물회] <SWEA알고리즘> 4861번 "회문" (0) | 2020.04.02 |
[맛있는물회] <SWEA알고리즘> 4843번 "특별한 정렬" (0) | 2020.04.02 |
[맛있는물회] <SWEA알고리즘> 4839번 "이진 탐색" (0) | 2020.04.02 |
[맛있는물회] <SWEA알고리즘> 4836 "색칠하기" (0) | 2020.04.02 |
Comments