2016年12月17日土曜日

Java

コーディング力上げたいな。 もっというと、要件やテストケースの理解力が大事ですね。

Paizaさんのコンテンツで遊んでたけど、六村リオの緊急事態 (Bランク問題)のテストケース4で失敗する。。。悔しか。。。



/////////////////
// code
/////////////////
import java.util.*;

public class Main {
    public static void main(String[] args) {
        // 自分の得意な言語で
        // Let's チャレンジ!!
        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        String[] tempArray = line.split(" ", 0); 
        String[] currentDir = tempArray[0].split("/",0);
        ArrayList path = new ArrayList( Arrays.asList(currentDir) );
        String[] targetPath = tempArray[1].split("/",0);
        // System.out.println( Arrays.toString(currentDir) );
        // System.out.println( Arrays.toString(targetPath) );
        
        String output = "/";
        int position = path.size() - 1 ;
        // System.out.println(position);
        for ( String dir : targetPath ) {
            if ( dir.equals("..") ) {
                position =  ( position == 0 ) ? position : --position;
                
            } else if ( dir.equals(".") ) {
                continue;    
            } else if (  ! path.get( position ).equals(dir)  ) {
                path.add( position + 1  ,dir);
                position++;
            }
        }
        
        for ( int i = 1; i < position + 1  ; i++ ) {
            output += path.get(i) ;
            if ( i < position  ) {
                output += "/";
            }
        }
        System.out.println(output);
    }
}

0 件のコメント:

コメントを投稿