コーディング力上げたいな。 もっというと、要件やテストケースの理解力が大事ですね。
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 件のコメント:
コメントを投稿