일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 플러터 공부
- 기술공부
- 스프링부트공부
- 자료구조공부
- 알고리즘공부
- DDD
- 프로그래머스
- JPA공부
- JPA예제
- Kafka
- 스프링
- nestjs공부
- querydsl
- 자바공부
- JPA 공부
- K8S
- Axon framework
- 스프링부트
- 코테공부
- JPA스터디
- Flutter
- nestjs
- 플러터 개발
- 카프카
- 스프링공부
- 코테준비
- 기술면접공부
- JPA
- 스프링 공부
- nestjs스터디
- Today
- Total
목록Algorithm (84)
DevBoi
해당, 관련되서는 간단하다. 모든 정렬에 대한 공식? 같은 것들이 있는데 그것중 하나는 특정 node나 class를 선언하고 comparable을 impl하고, 내부에서 compareTo를 오버라이드 하는 것이다. 해당 과 같이 구현하면, 단순히 이름,국,영,수를 받아서 비교 및 정렬을 할수 있다. compateTo를 구현하게 되면 sort를 했을때 특정 sort기준? 을 정할수있다.
1. 카운팅 정렬 1. 숫자가 등장한 횟수 를 다른 한가지의 배열에 넣는다 2. 다른 한가지의 배열의 누적합으로 값을 update해준다. 3. 기존 숫자들이 있던 배열 마지막부터, 새로 생성한 배열을 보면서, 정렬 index를 찾는다 ex. 4가 5번 등장하면, arr[5] =4 이런식으로 (만약 중복되는 값이 있어, index에 값이 이미있다면, -1 을 해준다.) 이해가 잘되는 애니메이션 링크 https://www.cs.miami.edu/home/burt/learning/Csc517.091/workbook/countingsort.html Counting Sort This is an animation of the counting sort algorithm found in CLR's Algorithms ..
브루트 포스 부분 수열의 합 https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 문제는 생각 보다 심플하다. 재귀를 두가지 방식으로 넘겨주면된다. 다만 재귀를 넘길때, 몇번째의 row의 값을 넘기면서, value값을 같이 넘기고, 해당 값을 비교하여, answer을 추가해준다. 해당 재귀를 넘길때는 value를 지금 값과 합친값, 그리고 합치지 않은 값의 두가지 방식으로 넘긴다.
https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 백트래킹을 이용해서 푼다. 브루트포스와 백트래킹의 차이는, 브루트포스는 처음부터, 하나씩 놓고 전부다 놓았을때 vailiation을 하지만, 백트래킹은, 놓을떄, 계산해서 놓는다. 즉, 이전의 결과로 유추가능한 상황을 미리 체크해서 놓을지 말지를 결정한다. 해당 방법은 비슷하지만 각각 두가지 구현방식중, 시간복잡도를 계산해서 선택을 하면 될 것같다.
백준 2309번 reduce는, 인자를 두개, 앞에꺼는 이전까지의 연산 합, 그리고 두번째는 새로운 것
https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 해당 문제는 단순히, 2차원 배열에서, 값을 비교해서, 카운트를 추가해줄지만 선택해서 완성하면된다. 쉬운 문제라 별도 설명 없
부분합 문제, 각수와 본숫자를 합친 값이문제에서 주어진 값과 같은 것중 가장 작은 값을 출력, 정답들이 여러개 있을수있기때문에 브루트 포스로 돌고, 해당 답들을 answerList에 넣어줘도되고, 그떄마다 비교해서 변경해줘도되고 주의점, 1. 합이 같은경우, 기존 list에서 합쳐서 string으로 만든것을 넣는다. 그다음 파싱으로 체크를 하고 값을 업데이트해준다.
package com.smith.BruteForce; import java.util.*; public class BOJ2798 { static int N =500; static List answerList = new ArrayList(); static int answer= Integer.MAX_VALUE; static int[] arr = {93,181,245,214,315,36,185,138,216,295}; static boolean[] check = new boolean[10]; public static void main(String[] args) { sol(0); System.out.println(answer); } public static void sol(int num) { if(answerLi..
워낙 쉬워서 설명은 필요없구 int 숫자를 String으로 변환, charAt으로 비교 체크, 재귀함수 1씩 플러스
선택 정렬은, 처음부터 제일 작은값을골라서(큰값이될 수도 있다.) 제일 앞으로 보내고, 그다음부터~ 끝까지 제일 작은값을 찾아서, 그 다음으로 보내는 것이다. 이것도 2중 반복으로 해주면되고, min의 인덱스를 찾아서, 현재 바깥의 index와 min을 스왑해주면 된다. 인덱스가 아니라 밸류로 하게되면, 스왑하기도 어렵고, set으로 되었을때는 swap 이 아니라 제일 최소값으로 값이 전체 복붙이 된다. 1.2중 포문으로 min 찾기 2.min index와 현재 탐색 기준 index 값 swap 하기 https://github.com/Realcheese94/Smith_Algorithm