728x90

알고리즘 3

[알고리즘] Algorithm with Math: 순열 / 조합

순열(Permutation) - 요소 n개 중에 m개를 선택하여 순서에 상관 있게 뽑는 경우의 수 - nPr = n! / (n-r)! 5장에서 3장을 선택하는 모든 순열의 수 = 5P3 = (5x4x3x2x1) / (2x1) = (5x4x3) = 60 - 요소를 뽑는 개수만큼 반복문 중첩 public static ArrayList permutation() { String[] cases = new String[]{"도", "개", "걸", "윷", "모"}; ArrayList result = new ArrayList(); for (int i = 0; i < cases.length; i++) { for (int j = 0; j < cases.length; j++) { for (int k = 0; k < ca..

[자료구조] 스택(Stack) / 큐(Queue)

스택(Stack) - 쌓다, 쌓이다, 포개지다 - LIFO(Last In First Out) 혹은 FILO(First Out Last In)의 구조 (e.g. 프링글스) - 데이터를 한번에 하나씩만 넣고 뺄 수 있음 - 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근 구조 - 데이터를 넣는 것을 'PUSH', 데이터를 꺼내는 것을 'POP'이라고 함 스택 메서드 - push() : 스택에 데이터 추가 - pop() : 가장 나중에 추가된 데이터를 스택에서 삭제하고, 삭제한 데이터 리턴 - size() : 스택에 추가된 데이터의 크기 - peek() : 스택에 가장 나중에 추가된 데이터 리턴 - show() : 현재 스택에 포함되어 있는 모든 데이터를 String 타입으로 변환하여 리턴 - clear..

[자료구조] Intro

자료구조 - 여러 데이터의 묶음을 저장하고, 사용 방법을 정의한 것 - 데이터를 사용하려는 목적에 따라 형태를 구분하고, 분류하여 사용함 - 데이터는 분석하고 정리하여 활용해야만 의미를 가질 수 있으며, 체계적으로 정리하여 저장해두고 필요에 따라 데이터의 특징을 잘 파악해 사용해야 함 자료구조의 종류와 구분 - 대부분의 자료구조는 특정한 상황의 문제를 해결하는 데 특화되어 있음 → 자료구조를 많이 알아둘 수록 상황에 적합한 자료구조를 빠르고 정확하게 적용하여 문제 해결 가능 - 알고리즘 테스트(코딩 테스트)를 위해서도 공부해야 함

728x90