URI 오답인 이유가 무엇인지 모르겠습니다...

  • kummyong
    kummyong

    python 3.4 로 작성하였습니다.

    import sys
    import re

    rl = lambda:sys.stdin.readline()
    n = int(rl())
    data = []
    for i in range(n):
    data.append(rl())

    for strline in data:

    keys = re.findall(r'%[0-9a-fA-F]{2}', strline)

    for key in keys :
        hexKey = '0x' + key[1:3]
        replace = chr(int(hexKey, 16))
        strline = strline.replace(key, replace)        
    
    print(strline.strip())

    정규식을 이용하여 %와 16진수 2자리를 Ascii로 치환하는 방식으로
    구현을 했습니다.

    줄 단위로 패턴을 인식해서 해당 패턴이 있는 단어들을 추출합니다.
    추출된 단어에서 % 이후 2자리와 0x를 붙여서 16진수 형태로 만든 후 int에서 16진수로 변환하고 다시 ascii 코드로 변환시켰습니다.
    원래 추출된 단어와 변환된 ascii 값을 replace로 치환을 시켰습니다.
    치환이 완료된 후에는 완성된 문자열에서 공백을 제거한 후 출력했습니다.

    %25와 관련해서 처음에는 변환된 내용을 한번 더 변환해야하나 했는데
    결론적으로 다 변환도 해보고 한번만 변환했을때도
    오답으로 체크가 되어서 제가 문제의 의도를
    제대로 파악을 못한 것 같습니다.

    도움 부탁드립니다.


    8년 전
1개의 댓글이 있습니다.
  • JongMan
    JongMan

    여러번 변환하시게 되는 것 같네요.


    8년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.