Part5 - 단기완성

Last updated - 2024년 11월 21일 Edit Source

    패스트캠퍼스 핵심유형 20개로 한 번에 끝내는 알고리즘 코딩테스트 with Java 강의

    Part1 - 4 기본강의, Part5 - 단기완성, Part6 - SQL코테Part5 단기완성 강의를 정리한 내용


    # 목차

    1. 완전탐색(브루트포스)
    2. 정렬

    # 좋은 습관


    1. 문제를 올바른 순서로 이해하자.
      • 읽기
        • 시간, 메모리 제한
        • 문제 전체를 반드시 꼼꼼하게
      • 이해하기
        • 제공되는 정보(변수들) 정리
        • 예제 데이터에 대한 이해
      • 파악하기
        • 가능한 최대, 최소 정답에 맞는 데이터를 직접 생성
        • 키워드가 되는 단어들을 체크

    1. 시간공간 복잡도를 계산하자.
      • 시간을 아끼기 위해서. “짤 가치가 있나?”
      • 예를 들어, N이 10만이라면, O(N2) = 100억이다. 이건 이중 for문으로 짜봤자 안되는 것을 알 수 있겠지. O(N log N)은 대략 180만이니까 가능하겠지?

    1. 코드를 효율적으로 함수화해서 구현하자.
      • 예를 들어, 다익스트라 20줄짜리를 3번 구현하면 60줄 짜야하겠지? 함수화해서 불러서 쓰면 훨씬 단축될 것.

    1. 코딩테스트에서 부분 점수를 챙기자.
      • 노력이라도 한 모습을 보이면 부분 점수를 받는다.

    # 입력 메서드

    • 호석님은 입력 메서드 관련하여 일단 넣고 시작하시는 코드가 있다고 하셨다.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    
    import java.util.*;  
    import java.io.*;  
      
    public class Main {  
        static StringBuilder sb = new StringBuilder();  
        //정답은 sb에 append 를 사용하여 출력  
        //만약 개행까지 출력하고 싶으면 append('\n')을 추가  
      
        static void input(){  
            FastReader scan = new FastReader();  
        }  
      
        public static void main(String[] args) {  
            input();  
        }  
      
        static class FastReader {  
            BufferedReader br;  
            StringTokenizer st;  
      
            public FastReader() {  
                br = new BufferedReader(new InputStreamReader(System.in));  
            }  
      
            public FastReader(String s) throws FileNotFoundException {  
                br = new BufferedReader(new FileReader(new File(s)));  
            }  
      
            String next() {  
                while (st == null || !st.hasMoreElements()) {  
                    try {  
                        st = new StringTokenizer(br.readLine());  
                    } catch (IOException e) {  
                        e.printStackTrace();  
                    }  
                }  
                return st.nextToken();  
            }  
      
            int nextInt() {  
                return Integer.parseInt(next());  
            }  
      
            long nextLong() {  
                return Long.parseLong(next());  
            }  
      
            double nextDouble() {  
                return Double.parseDouble(next());  
            }  
      
            String nextLine() {  
                String str = "";  
                try {  
                    str = br.readLine();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  
                return str;  
            }  
        }  
    }
    

    Comment