[BOJ] Queue, DeQue/ 19단계
·
Hi🖐️/Algorithm
1 18258 큐 2 성공 7886 26220 30.958% 큐의 개념을 익히고 실습하는 문제. 연산 당 시간 복잡도가 O(1)이어야 한다는 점에 유의하세요. def push(num) : list.append(num) def pop() : if len(list) != 0 : print(list.popleft()) else : print(-1) def size() : print(len(list)) def empty() : if len(list) != 0 : print(0) else : print(1) def front() : if len(list) != 0 : print(list[0]) else : print(-1) def back() : if len(list) != 0 : print(list[-1]) e..
[BOJ] Stack / 18단계
·
Hi🖐️/Algorithm
1 10828 스택 성공 41369 108817 38.494% 스택의 개념을 익히고 실습하는 문제 def push(num): arrayList.append(num) def pop() : if len(arrayList) == 0 : print(-1) else : print(arrayList.pop()) def size() : print(len(arrayList)) def empty() : if len(arrayList) == 0 : print(1) else : print(0) def top() : if len(arrayList) == 0 : print(-1) else : print(arrayList[-1]) import sys arrayList = [] T = int(input()) for i in ran..
[BOJ] 정수론 및 조합론 / 17단계
·
Hi🖐️/Algorithm
자바로만 풀다가 파이썬 공부할겸 이번 단계에서는 파이썬으로만 풀었습니다. 1 5086 배수와 약수 성공출처다국어분류 7239 10516 70.288% 배수와 약수를 배우는 문제 def test(num01, num02) : if num02 % num01 == 0 : print("factor") elif num01 % num02 == 0: print("multiple") else : print("neither") while True : number01, number02 = map(int, input().split()) if number02 == 0 and number01==0 : break test(number01, number02) 2 1037 약수 성공분류 12488 25527 49.747% 약수의 성질..
[BOJ] Greedy Algorithm / 16단계
·
Hi🖐️/Algorithm
1 11047 동전 0 동전의 조건이 특별해서 동적 프로그래밍보다 빠르게 답을 찾을 수 있는 문제 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer bd = new StringTokenizer(bfr.readLine()); int T = Integer.parseInt(bd.nextToken()); int money = Integer.parseInt(bd.nextT..
[BOJ] dynamic programming / 14단계
·
Hi🖐️/Algorithm
1 1003 피보나치 함수 단순 재귀로 피보나치 수를 구하면 왜 느릴까요? 함수 호출의 개수가 기하급수적으로 늘어나기 때문입니다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(bfr.readLine()); for(int i=0; i
[BOJ] 15단계 / Greedy Algorithms
·
Hi🖐️/Algorithm
1 11047 동전 0 동전의 조건이 특별해서 동적 프로그래밍보다 빠르게 답을 찾을 수 있는 문제 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer bd = new StringTokenizer(bfr.readLine()); int T = Integer.parseInt(bd.nextToken()); int money = Integer.parseInt(bd.nextT..
동적계획법(Dynamic Programming) / Memoization
·
Hi🖐️/Algorithm
-동적계획법 (dynamic programming) 복잡한 문제를 간단한 여러개의 문제로 나누어서 푸는 방법. 부분문제반복과 최적부분구조를 가지고있는 알고리즘을 일반적인 방법보다 더 적은 시간내에 풀 때 사용. 문제를 여러개의 하위 문제(subproblem)로 나누어 품. 이 하위문제들을 결합하여 최종적인 문제에 도달하는 것. 메모이제이션(memoization) 컴퓨터 프로그램이 동일한 계산을 반복할 때, 이전에 계산한 값은 메모리에 저장해서 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술. 동적 계획법의 핵심 기술. 처음 방문하는 재귀문제면 계산을 통해 얻은 값을 메모리에 저장, 이 후 재방문을 하면 계산하지 않고 저장 된 값 사용. ex) import java.util.Sc..
[BOJ] BackTracking /13단계
·
Hi🖐️/Algorithm
13 백트래킹 모든 경우를 탐색하는 백트래킹 알고리즘을 배워 봅시다. 1 15649 N과 M (1) 백트래킹 입문 문제 1 import java.util.Scanner; public class Main { public static int[] array; public static boolean[] visit; //방문했는지 확인. default = False public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); int M = scan.nextInt(); array = new int[M]; visit = new boolean[N]; dfs(N, M, 0); } public st..
[백준] 12단계 문제 모음
·
Hi🖐️/Java
12 정렬 배열의 원소를 순서대로 나열하는 알고리즘 1 2750 수 정렬하기 시간 복잡도가 O(n²)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 삽입 정렬, 거품 정렬 등이 있습니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException{ BufferedReader bfr = new Buff..
[백준] 11단계 문제 모음
·
Hi🖐️/Java
11 브루트 포스 가장 간단한 알고리즘인, 모든 경우의 수를 검사하는 브루트 포스 알고리즘을 배워 봅시다. 1 2798 블랙잭 import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); int T = scan.nextInt(); int Max = scan.nextInt(); int n[] = new int [T]; for(int i = 0; i
Liky
'백준' 태그의 글 목록