티스토리 뷰

반응형

https://www.acmicpc.net/problem/9996

 

9996번: 한국이 그리울 땐 서버에 접속하지

총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다.

www.acmicpc.net


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 문자열
  • 브루트포스 알고리즘
  • 정규 표현식

 


 

⊙ 문제 접근 과정

 

중요하게 봐야 할 곳

 

"패턴은 알파벳 소문자 여러 개와 별표(*) 하나로 이루어진 문자열이다."

 

"소문자 여러 개" 예시에서는 별표를 가운데에 두고 양쪽에 소문자가 하나씩 있지만,

소문자 여러 개가 위치해도 가능하다는 뜻이다.

 

따라서 문자열 슬라이싱을 이용해 문제를 풀었다.


 

⊙ 문제 풀이

 

N = int(input())

pattern = input().split('*')

for _ in range(N):
    inputString = input()
    
    if inputString[:len(pattern[0])] == pattern[0] and inputString[-len(pattern[1]):] == pattern[1] and len("".join(pattern)) <=len(inputString): 
        print("DA")
    else:
        print("NE")

 


⊙ 결과

 


⊙ 마무리

 

 

NONE

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함