[Java] 12. 문자열 컨트롤 테스트 문제


기억이 안난다.



개발을 하다 보면 아래와 같은 로직 및 개념이 필요한 경우가 생각보다 많았던거 같다. 괜히 어떤 회사에서 아래와 같이 비슷한 코딩테스트 문제를 제출한게 아닌 듯 하다. Java API에서 지원이 너무 좋아서 아래 같은 코딩은 없겠지만

// AABDEEFF 라는 문자열을 A2, E2, F2 로 출력 하라

class Main {

	public static void main (String[] args) throws java.lang.Exception {

	    String str = "AABDEEFF";
	    List<String> strList = new ArrayList();

	    for(int i=0; i<str.length(); i++) {
	       strList.add(i, Character.toString( str.charAt(i) ));
	    }

	    List<String> distinctItems = new ArrayList <String> (new HashSet<String> (strList));
	    for (String distinctItem : distinctItems) {
	        int cnt = 0;
	        for (String s : strList) {
	            if (s.contains(distinctItem)) {
	                cnt++;
	            }
	        }
	        if (cnt < 2) continue;
	        System.out.println(">> distinctItem:" + distinctItem + cnt);
	    }
	    System.out.println(">> distinctItems:" + distinctItems);   
	}
}
//3443, CDEDC, YYYZZZ 문자열이 있는데 문자열을 거꾸로 출력
//같을 경우 True 아닐 경우 Flase

class Main {

	public static void main (String[] args) throws java.lang.Exception {

        String str = "3443,CDEDC,YYYZZ";
        String[] strArr = str.split(",");

        for (String s : strArr) {
            System.out.println("str:" + s + ", " + reverseChk(s));
        }
	}

	public static Boolean reverseChk(String s) {
        StringBuffer sb = new StringBuffer(s);
        String reverseStr = sb.reverse().toString();
        //System.out.println("str:" + s + ", reverseStr:" + reverseStr);
        return (s.equals(reverseStr)) ? true : false;
	}
}
//연속 된 문자열을 제거하라 ABCGJ, GJ 만 출력

class Main {

	public static void main (String[] args) throws java.lang.Exception {

        String str = "ABCGJYZ";
        List<String> strList = new ArrayList();
        Character preChar = null;
        Character nowChar = null;
        Character nxtChar = null;

	    for(int i=1; i<str.length(); i++) {
	        preChar = str.charAt(i-1);
	        nowChar = str.charAt(i);
	        nxtChar = str.charAt(i+1);

	        if ((int)preChar+1 != (int)nowChar ) {
                System.out.println("Char:" + nowChar );
                //System.out.println("preChar:" + (int)preChar + ", " + (int)nowChar );
	        }
	    }
    }
}