0913 TIL

zio도미닉·2021년 9월 14일
0

TIL

목록 보기
5/6

알고리즘 문제 풀이

  • 프로그래머스 제일 큰 수 문제 해결
  • 특이점
    1. 필요한 자리수를 구한다.
    2. 나열되어 있는 수 중에서 반드시 필요로 하는 마지막 자리 개수를 뺀 후 앞에서 부터 가장 큰 숫자 1개를 더한다.
    3. 가장 큰 수 1개를 구한다음에는 앞에 인덱스는 제외하고 다음 인덱스부터 필요한 자리수를 구한다.
    4. 1~3과정을 반복하고 필요로한 자리수를 구한 다음에는 return 하여 while문을 빠져 나간다.
    5. 특이사항은 자바는 String의 인덱스 접근을 위해서 charAt(i)을 이용해서 인덱스 접근
    5-1. charAt(i)
    5-2. char to Int : Character.getNumericValue(val)을 이용한다.
class Solution {
    public String solution(String number, int k) {

        StringBuilder sb=new StringBuilder();
        String answer = "";
        int last=number.length()-k;
        int ans=number.length()-k;


        while (true) {
            if (sb.length()==ans) break;
            int find_idx=number.length()-last+1;
            String temp=number.substring(0,(find_idx));

            int max_num=find_su(temp);
            String num_String=Integer.toString(max_num);
//            answer+=num_String;
            sb.append(num_String);

            int next_idx=number.indexOf(num_String);
            number=number.substring(next_idx+1);
            last-=1;

        }
        // System.out.println("answer"+answer);
//        System.out.println(sb.toString());
        answer=sb.toString();
        System.out.println(answer);

        return answer;
    }

    private int find_su(String temp) {
//        char val;
        int max_val=0;
        for (int i=0;i<temp.length();i++) {
            char val=temp.charAt(i);
            int val_to_int=Character.getNumericValue(val);
//            System.out.println("val"+val);
            if (val_to_int==9) {
                max_val=val_to_int;
                break;
            }
            else if (max_val<=val_to_int) {
                max_val=val_to_int;
            }
        }
        return max_val;
    }
}

프로그래머스 교육

  • 서블릿
  • MVC에서 Controller는 서블릿
  • 서블릿 -> 멀티스레드와의 관계
    - 사용자의 요청마다 쓰레드를 만들어줌 -> 이 쓰레드는 1개의 서블릿을 참조하여 동시 접근한다. 이때 쓰레드는 순차적으로 접근하는 것이 아니라 동시 접근
    - 모든 쓰레드는 각 객체를 가지고 각자의 stack (지역변수)를 가지고 실행하여 다른 쓰레드와의 접근을 막는다.
  • 자세한 설명
    https://www.notion.so/1-Servlet-fcf7c7d333814ac4b981dc6fedf017d4
profile
BackEnd Developer

0개의 댓글