210926 일 Algorithms TIL

bongf·2021년 9월 25일
0

알고리즘TIL

목록 보기
7/153

https://bong-f.tistory.com/269

124 나라의 숫자

Java

  • Stringbuilder append insert
  • StringBuilder 앞에 추가
  • insert 는 원하는 위치에 삽입 가능 하다. 첫번째 인자로 적는 '위치'는 바이트가 아닌 문자 열 수를 나타낸다.
        StringBuilder sb = new StringBuilder();

        sb.append("Hello .Welcome to Java.");
        sb.insert(6, "Jon");

        System.out.println(new String(sb)); // Hello Jon.Welcome to Java.

프로그래머스 2017 카카오코드 본선

단체사진찍기 level2

Java Only

class Solution {
    static String[] arr = {"A","C","F","J","M","N","R","T"};
    static String[] result = new String[8];
    static boolean[] used = new boolean[8];
    static int answer;
    public int solution(int n, String[] data) {
        answer = 0;
        perm(0,data);
        return answer;
    }
    static void perm(int cnt, String[] data){
        if(cnt==8){
            String s = "";
            for(int i=0; i<arr.length; i++){
                s+=result[i];
            }
            for(int i=0; i<data.length; i++){
                int start = s.indexOf(data[i].charAt(0));
                int end = s.indexOf(data[i].charAt(2));

                if(data[i].charAt(3)=='=' && Math.abs(start-end)-1!=data[i].charAt(4)-'0'){
                    return;
                }else if(data[i].charAt(3)=='<' && Math.abs(start-end)-1>=data[i].charAt(4)-'0'){
                    return;
                }else if(data[i].charAt(3)=='>' && Math.abs(start-end)-1<=data[i].charAt(4)-'0'){
                    return;
                }
            }
            answer++;
            return;
        }
        for(int i=0; i<arr.length; i++){
            if(!used[i]){
                used[i] = true;
                result[cnt] = arr[i];
                perm(cnt+1, data);
                used[i] = false;
            }
        }
    }
}
profile
spring, java학습

0개의 댓글