ABOUT ME

Today
Yesterday
Total
  • 6581. [Python]HTML
    Python_알고리즘/Gold V 2024. 8. 26. 19:29

    1. 문제

     

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

     

     

    2. 접근 방법

     

    • 시간 제한: 1초
    • 메모리 제한: 128MB
    • 구현
    • 파싱

     

    3. 파이썬 코드

     

    import sys
    
    ans = []
    # input으로 들어오는 대로 받기
    for words in sys.stdin:
        # 공백 제거하고 구분하여 리스트에 추가
        for word in words.strip().split():
            ans.append(word)
    # 정답 출력할 변수
    answer = ""
    # 리스트 안을 순회
    for an in ans:
        # 개행 태그인 경우 이때까지 저장한 문자 출력 후 초기화
        if an == "<br>":
            print(answer)
            answer = ""
            continue
        # --- 구분선 태그인 경우
        if an == "<hr>":
            # 저장한 문자가 있으면 출력 후 - 80 줄 추가
            if answer:
                print(answer)
            print("-"*80)
            answer = ""
            continue
        # 저장한 문자 + 들어온 문자 + 공백의 길이가 80줄이 넘는 경우 저장한 문자 출력 후 새로운 문자로 초기화
        if len(answer) + len(an) + 1 > 80:
            print(answer)
            answer = an
        else:
            # 저장된 문자가 있는경우 공백 추가 후 문자 추가
            if answer:
                answer += " "
            answer += an
    # 저장된 문자가 남아있는 경우 출력
    if answer:
        print(answer)

     

    4. 문제를 풀고난 후 생각

     

    • 문제의 난이도 자체는 높은편이 아니지만 인풋으로 들어오는 데이터 파싱이 좀 힘들었던 문제였다.
    • 중간중간 개행문자들도 있고 마지막 문자가 개행으로 들어온다 하여서 여러 조건을 추가해가며 접근을 했던 문제이다.
    • 평소 readline을 주로 사용했기 때문에 끝이 정해지지 않은 인풋처리 부분에 대해서 다시 생각해볼 수 있던 문제였다.

     

    5. 문제를 푸는데 도움이 되는 지식

     

    • 구현
    • 파싱

    'Python_알고리즘 > Gold V' 카테고리의 다른 글

    2294. [Python]동전 2  (1) 2024.09.05
    2293. [Python]동전 1  (0) 2024.09.05
    2866. [Python]문자열 잘라내기  (0) 2024.08.19
    2866. [Python]문자열 잘라내기  (0) 2024.08.13
    14891. [Python]톱니바퀴  (0) 2024.08.07

    댓글

Designed by Tistory.