일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 1000번
- 자바
- 백준 1924번
- 자료구조힙
- 객체프로그래밍이란
- 카카오코딩테스트
- 문자열포맷
- 코딩테스트기출
- 카카오기출
- 자바문자열
- 카카오1차
- 공부정리
- 객체프로그래밍
- 카카오코테
- 백준
- 프로그래머스
- 알고리즘
- Java heap
- 백준 1000번 java
- java
- 백준 1924번 java
- java method
- 개발상식
- 프렌즈4블록
- 프렌즈4블록java
- 자료구조 트리
- 코테준비
- 힙정렬자바
- heap
- heap정렬
- Today
- Total
목록CS/알고리즘 개념 (6)
일단 시작해보는 블로그
달팽이 모양으로 출력 import java.util.Scanner; // 배열 달팽이 알고리즘 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] A = new int[n][n]; // Filling data. int K = 1, f = 0; while(K
문제 자연수 n(n>=2)을 입력받으면, 0도 회전, 시계방향 90도, 반시계방향 90도, 위아래 반전, 좌우 반전 출력하기. 코드 package arrayAlgorithm; import java.util.Scanner; public class Array_Rotate { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] A = new int[n][n]; // Filling data. int K = 1; for(int i=0; i
점화식을 구해서 적용했다. 생각 흐름 5 X 5 행렬이 있다고 보면, 데이터가 존재하는 인덱스대로 다음과 같이 처리할 수 있다. -> 점화식을 만들 때, 대칭인 것(예를 들어, 1 3 5 3 1)을 for문으로 처리하는 방식은 대칭의 중심이 되는 것을 0으로 만들고 실제로 for문안에서 출력할 때 절댓값(java에서는 Math.abs(...))로 사용하면 된다. 코드 package ArrayAlgorithm; import java.util.Scanner; public class Array_Diamond { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 5x5배열 int[..
순열이란? 수학적으로는 완전순열이라고 하는데, 쉽게 말해서 모든 원소의 위치를 바꿔서 주어진 수 배열을 나열할 수 있는 경우의 수를 모두 표현한 것이다. 예를들어, {1, 2, 3} 이라면 {1, 2, 3}, {1, 3, 2}, {2, 1, 3}, {2, 3, 1}, {3, 1, 2}, {3, 2, 1}가 해당된다. 순열의 구현 첫번째로 생각해봐야하는 것은 해당 순열의 다음순열 구하기이다. 그래야 loop문으로 모든 순열을 구현할 수 있기 때문! [순열의 다음순열 구하기] {1 2 3 4 5 6 7}로 이루어진 순열을 사전순으로 나열했을 때, 마지막에 올 수 있는 것은 {7 6 5 4 3 2 1}일 것이다. 앞의 자리가 3이면서 마지막에 올 수 있는 것은 ? {3 7 6 5 4 2 1} 앞의 자리가 4 ..
부분집합이란? 예를 들어, 집합 A = {a, b, c, d}가 있다고 하면, A의 부분집합인 B는 {}, {a}, {b}, ... {a,b}, ... {a, b, c}, ... {a,b,c,d}, 16(2^4)가지수로 표현될 수 있다. 비트마스크 연산을 이용한 부분집합의 프로그램으로의 구현 부분집합은 집합에서 각각 원소가 있다(1) 혹은 없다(0)의 경우의 수로 볼 수 있는데, 이러한 경우로 보면 '비트마스크 연산'을 이용해 표현할 수 있다. 구현과정을 두가지로 나눌 수 있다. 1. 부분집합을 이진수로 표현하기 2. 각각 이진수를 부분집합으로 변환해서 출력하기. (1이면 해당 원소 출력, 0이면 continue;) 1. 각 원소를 이진수로 표현 다음은 집합 A = {a, b, c, d}의 부분집합을 이..
피보나치 수열은 dp를 이해함에 있어서 필수적인 예제이자, 이해수단(?)이다. dp를 처음 접한다면 일단 피보나치 수열에 관련한 것을 이해한 후, 개념을 접하는 것이 혼란방지용으로 좋을 것 같다. 피보나치 수열 수학에서, 피보나치 수(fibonacci numbers)는 첫째 및 둘째 항이 1이며, 그 뒤의 모든 항은 바로 앞 두항의 합인 수열이다. 1, 1, 2, 3, 4, 7, 11, ... (1번째 항부터 나열한 피보나치 수열의 예시) 즉, 초기값 및 점화식으로 정의되어있는 규칙이 있는 수열 0행부터 정의한다면 0행의 초기값을 0으로 놓고 시작한다. https://ko.wikipedia.org/wiki/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98_%EC%88%98 피보나치 수 -..