URI 문제가 잘 안풀립니다.

  • SLoVey
    SLoVey

    댓글에 달려있던 예제 5개와
    이외의 %25252524 가 연속으로 나오는 예제
    %25%21%20 등 연속으로 나오는 예제등을 실행해보았습니다.
    또한 같은 예제를 http://ideone.com/ 에서도 실행해보았습니다.
    모두 문제가 없는데 오답처리가 되었네요
    어떤 예제로 실행해 보면 좋을까요?

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    
    public class Main {
        public static void main(String args[]) throws NumberFormatException, IOException{
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            int numOfquestion = Integer.parseInt(in.readLine());
    
            for(int i=0; i<numOfquestion ; i++){
                String uris = in.readLine();
                System.out.println(changeString(uris));
            }
        }
    
        public static String changeString(String uri){
            uri=uri.replaceAll("%20", "\\ ");
            uri=uri.replaceAll("%21", "\\!");
            uri=uri.replaceAll("%24", "\\$");
            uri=uri.replaceAll("%25", "\\%");
            uri=uri.replaceAll("%28", "\\(");
            uri=uri.replaceAll("%29", "\\)");
            uri=uri.replaceAll("%2a", "\\*");       
    
            if(uri.contains("%20") || uri.contains("%21") || uri.contains("%24") || uri.contains("%25")|| uri.contains("%28")|| uri.contains("%29") || uri.contains("%2a")){
                uri=changeString(uri);
            }
            return uri;
        }
    }
    

    10년 전
8개의 댓글이 있습니다.
  • kriii
    kriii

    문제를 잘못 이해하셨습니다...
    입력이 %2524면 %24를 출력해야합니다.


    10년 전 link
  • SLoVey
    SLoVey

    %24는 다시 $로 안바꿔도 되는 문제였나요? ㅎㅎ 댓글에서 %의 함정이라고 해서 여러번 생각한거였는데 되려 함정에 빠졌군요 그런데 그냥 %24로 출력해도 오답처리되네요 뭐가 문제일까요?


    10년 전 link
  • kriii
    kriii

    저런방식으로 하면 %252a같은게 문제아닐까요?


    10년 전 link
  • SLoVey
    SLoVey

    답변감사합니다. 2번째 댓글에 제가 설명이 조금 부족했네요. 마지막 if contain 부분을 모두 삭제하여 %25다음에 %252a 나 %2524가 오더라도 %25만 변형하여 %2a %24로 출력하도록 수정했는데도 자꾸 오답처리 됩니다. ㅠ 한번만 더 같이 고민해주세요 +_+ !


    10년 전 link
  • kriii
    kriii

    한번 %2528을 넣어서 답이 %28로 나오는지 확인해주세요 저는 이미 SLoVey님의 소스를 고쳐서 정답을 받았습니다.


    10년 전 link
  • SLoVey
    SLoVey

    헐 감사합니다. 바로 풀었습니다.
    %의 함정이 이걸 뜻하는 것이었군요.


    10년 전 link
  • Being
    Being

    이스케이핑이라는 게 특정 문자를 다른 용도로 활용하게 되면 그 문자를 활용할 방법이 없다는 데서 발생하는 것인데, 이걸 이중 적용하면 안되겠죠 ㅎㅎ


    10년 전 link
  • SLoVey
    SLoVey

    아하 알고리즘을 짜기전에 입출력부터 완벽히 이해해야 좋은 알고리즘이 나오는거 같습니다. 감사합니다 !


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