본문 바로가기

알고리즘8

외계인의 기타 연주(BJ_2841) 1. 문제 링크https://www.acmicpc.net/problem/2841  2. 나의 코드메모리: 122288kb시간: 576ms코드 길이: 1421B시간 복잡도 : O(N)설명- 6개의 스택을 생성하여 문제 해결import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Stack;import java.util.StringTokenizer;public class BJ_2841 { static int N, P, result; static Stack[] stackArr; public static void main(String[] args) throws I.. 2024. 8. 26.
완전 탐색 1. 완전 탐색 1) 완전 탐색이란? - 문제의 해법으로 생각할 수 있는 모든 경우의 수를 나열해보고 확인하는 기법 - Bruete-force 기법이라고 불린다. - 상대적으로 빠른 시간에 문제 해결을 할 수 있다. - 일반적으로 경우의 수가 상대적으로 작을 때 유용하다. - 우선 완전 탐색으로 접근하여 해답을 도출한 후, 성능 개선을 위해 다른 알고리즘을 사용하고 해답을 확인하는 것이 바람직하다. 2. 순열, 조합 1) 순열(P) - 순열이란 서로 다른 n개중에 r개를 선택하는 경우의 수를 의미합니다. (순서 상관 있음) - nPn은 n!이다. - 10!은 약 360만 (마지노선) 2) 조합(C) - 조합이란 서로 다른 n개중에 r개를 선택하는 경우의 수를 의미합니다. (순서 상관 없음) 3) 순열, .. 2024. 1. 30.
알고리즘 / 재귀 1. SW 문제 해결 능력 1) SW 문제 해결 역랑 - 제약 조건과 요구사항을 이해하고 최선의 방법을 찾아내는 능력 ※ 한 문제를 풀고 3명 이상의 풀이법을 보기 - 문제 해결 역량은 추상적인 기술이다. - 문제 해결 역량을 향상하기 위해서 훈련이 필요하다. 2) 문제 해결 과정 - 문제를 읽고 이해한다. (3회독) - 어떻게 해결할지 계획을 세운다. - 계획을 검증한다. (시간 복잡도, 공간 복잡도) - 프로그램으로 구현한다. - 어떻게 풀었는지 돌아보고, 개선한 방법이 있는지 찾아본다. - 1시간이 지나면 풀었든 못 풀었든 다른 사람들의 코드를 찾아본다. (3명 이상) 3) 알고리즘 - 어떠한 문제를 해결하기 위한 절차라고 볼 수 있다. 2. 알고리즘 성능 1) 시간 복잡도 - 최선의 경우 : 빅 .. 2024. 1. 29.
스택과 큐 1. 스택 - 삽입과 삭제 연산이 후입선출로 이뤄지는 자료구조 2. 큐 - 삽입과 삭제 연산이 선입선출로 이뤄지는 자료구조 3. 스택과 큐 코드 구현 public class Example { public static void main(String[] args) { Stack st = new Stack(); Queue q = new LinkedList();//Queue의 인터페이스 구현체인 LinkedList를 사용 st.push("0"); st.push("1"); st.push("2"); q.offer("0"); q.offer("1"); q.offer("2"); System.out.println("=== Stack ==="); while(!st.isEmpty()) { System.out.println(s.. 2024. 1. 17.