BaekJoon - 6550번: 부분 문자열 (문자열, 그리디 알고리즘)

2023. 2. 12. 13:14·Coding Test/BaekJoon_Python
728x90

분명 모든 테스트 케이스는 다 제대로 된 답변이 뜨는데 왜 이 문제는 정답이 아니라고 할까?

라고 생각을 했었다

하지만 이는 문제를 또다시 제대로 읽지 못 한 나의 잘못으로 인해 쌩 고생을 하게 되었고,

결국 생각지도 못한 곳에서 해결방법을 찾아내었다


문제

 

6550번: 부분 문자열

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다.

www.acmicpc.net


문제 발생 지점

  • 여기서 나는 모든 케이스에 대한 알고리즘을 잘 풀었었다
  • 하지만 '입력은 여러 개의 테스트 케이스로 이루어져 있다'에 대한 부분을 간과하였고, 이 부분을 해결하자 문제가 해결되었다

코드 작성

# 풀이 추가
# try, except는 이런 문제처럼 테스트 케이스가 여러 개 들어가있지만 몇 개 들어간다고
# 명시되지 않은 테스트에서 사용할 수 있다 while로 감싸고 try: except EOFError: 을 활용해보자
while True:
    try:
        # 문자열 둘 입력받기
        s, t = map(str, input().split())
        count = 0
        answer = 'No'
        # Yes가 될 상황만 고려해본다
        # s와 t를 비교해보는 반복문, s에는 count를 통해 하나씩 증가시켜보면서 t하고 비교해본다
        # 다르다면 t의 그 다음 문자부터 비교해보는 느낌으로 반복한다
        for i in range(len(t)):
            if s[count] == t[i]:
                count += 1
            else:
                continue
            # count는 사이에 있는 문자가 달라도 끝까지 비교했을 때 길이가 같으므로 Yes에 충족된다
            if count == len(s):
                answer = 'Yes'
                break
        print(answer)
    except EOFError:
        break

해답은 While 문으로 무한 반복 시킨 이후 안에서 try: except: 를 이용해서 계속 테스트를 진행하는 코드를 짜는 것이었다

이 부분에 대해서 완전히 간과하고 있었다보니 뭔가 삽질을 한 기분이 들기도 했다

하지만 이 삽질이 의미가 있었을 것이기에 나는 만족한다


실행 및 마무리

정상적으로 출력 되는 모습을 볼 수 있다!


End

728x90
저작자표시 비영리 변경금지 (새창열림)

'Coding Test > BaekJoon_Python' 카테고리의 다른 글

BaekJoon - 1012번: 유기농 배추 (그래프, 탐색)  (0) 2023.02.15
BaekJoon - 2667번: 단지번호붙이기 (그래프, 탐색)  (0) 2023.02.15
BaekJoon - 14584번: 암호 해독 (문자열, 브루트포스 알고리즘)  (0) 2023.02.11
BaekJoon - 5597번: 과제 안 내신 분..? (1차원 배열, PYTHON)  (1) 2022.11.01
BaekJoon - 10807번: 개수 세기 (1차원 배열, PYTHON)  (0) 2022.11.01
'Coding Test/BaekJoon_Python' 카테고리의 다른 글
  • BaekJoon - 1012번: 유기농 배추 (그래프, 탐색)
  • BaekJoon - 2667번: 단지번호붙이기 (그래프, 탐색)
  • BaekJoon - 14584번: 암호 해독 (문자열, 브루트포스 알고리즘)
  • BaekJoon - 5597번: 과제 안 내신 분..? (1차원 배열, PYTHON)
ThreeLight
ThreeLight
ThreeLight Studio의 블로그, TimeMap.exe에 오신 것을 환영합니다.
  • ThreeLight
    TimeMap.exe
    ThreeLight
  • 전체
    오늘
    어제
    • 분류 전체보기 (245)
      • Checkpoint (1)
      • (3D)Dev Deep Dive (0)
        • Templates & Guides (9)
        • Frontend origin (9)
        • Backend origin (1)
        • TroubleShootings (4)
      • Development Study (95)
        • Frontend (36)
        • Backend (21)
        • CS(Computer Science) (2)
        • Background Knowledges (11)
        • Algorithm (2)
        • Mobile (3)
        • AWS (6)
        • Python (6)
        • MSW(MapleStoryWorlds) (8)
      • Coding Test (59)
        • 문제.zip (1)
        • BaekJoon_JavaScript (0)
        • Programmers_JavaScript (9)
        • BaekJoon_Python (23)
        • Programmers_Python (10)
        • Undefined_Python (3)
        • Programmers_SQL (13)
      • 활동내역.zip (43)
        • 개인 (21)
        • Techeer (12)
        • Bootcamp (7)
        • Hackathon (1)
        • TeamProjects (2)
      • 여기 괜찮네??(사이트 | App) (5)
      • 재미있는 주제들 (8)
      • 개발 외 공부 저장소 (11)
        • 생산운영관리 (3)
        • 생활속의금융 (6)
        • 경영정보시스템 (2)
  • 링크

    • TimeMap.dmg (Portfolio)
    • GitHub 바로가기
    • 오픈프로필(카카오톡)
    • Medium 바로가기
    • Disquiet 바로가기
    • LinkedIn 바로가기
  • 인기 글

  • 태그

    CSS
    programmers
    프로그래머스
    SQL
    TypeScript
    Baek Joon
    JavaScript
    HTML
    Python
    react
  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
ThreeLight
BaekJoon - 6550번: 부분 문자열 (문자열, 그리디 알고리즘)
상단으로

티스토리툴바