12015

오답 여부: o 편집 시간: 2022년 3월 14일 오후 7:59 코드 Algorithm/12015.py at main · Junroot/Algorithm Algorithm/12015-2.py at main · Junroot/Algorithm 풀이 잘못된 풀이 11053 기존에 이 문제에서 수열의 크기가 1000000으로 늘어났다. 즉, nlogn으로 풀어야된다는 뜻이다. 기존문제에서 dp를 사용해서 O(n^2)였는데 dp를 빠르게 구하기 위해서 수열의 크기가 큰것부터 비교하기위헤 우선순위 큐를 사용했다. 하지만 이는 최악의 경우 O(n^2logn)으로 오히려 더 느려진다는 문제가 있었다. 맞는 풀이 완전히 다른 방법으로 접근해야되었다. 그리디 + dp + 바이너리서치를 사용해야되는 문제다....

2024-09-15 · 1 min · 150 words

12-리액티브 데이터 퍼시스턴스

컨트롤러부터 데이터베이스에 이르기까지 데이터의 전체 플로우가 리액티브하고 블로킹되지 않는 것이 중요하다. 만일 블로킹되는 리퍼지터리에 의존하는 스프링 WebFlux 리액티브 컨트롤러를 작성한다면, 이 컨트롤러는 해당 리퍼지터리의 데이터 생성을 기다리느라 블로킹될 것이다. 스프링 데이터 리액티브 개념 이해하기 현재는 카산드라, 몽고DB, 카우치베이스, 레디스로 데이터를 저장할 때 리액티브 프로그래밍 모델을 지원한다. 관계현 데이터베이스나 JPA는 리액티브 리퍼지터리가 지원되지 않는다. 스프링 데이터 JPA로 리액티브 프로그래밍 모델을 지원하려면 관계형 데이터베이스와 JDBC 드라이버 역시 블로킹되지 않는 리액티브 모델을 지원해야 한다....

2024-09-15 · 5 min · 965 words

12-다섯 가지 세계

상품 소프트웨어 대규모 사요자가 자기 의지에 따라 선택해 사용할 수있는 소프트웨어 엄청나게 많은 사용자가 한 소프트웨어를 사용하지만, 늘 다른 대안이 있다. 상품이 성공하기 위해선 사용자 인터페이스를 평균 이상으로 쓰기 쉽게 만들어야 한다. 소프트웨어는 수많은 컴퓨터에서 동작하므로, 다양한 시스템 환경에서 매우 적극적으로 대응할 수 있는 코드여야 한다. 오픈소스, 웹 기반, 컨설팅웨어라는 세 가지 주요 변종이 있다. 오픈소스: 거의 대부분 돈을 받고 하는 일이 아니기 때문에, 역학 관계가 극적으로 바뀐다. 사용 편의성이 떨어니고, 서로 원하는 자옷에서 각자 개발을 진행할 가능성이 훨씬 더 높아져, 팀내 상호대화 수준에 따라 품질 격차가 심하게 벌어진다....

2024-09-15 · 1 min · 212 words

1197

편집 시간: 2022년 3월 1일 오후 7:11 코드 Algorithm/1197.py at main · Junroot/Algorithm 풀이 프루스칼 알고리즘을 이용해서 문제를 해결했다. 정점의 개수가 최대 10000개이므로 프림 알고리즘도 가능하다.

2024-09-15 · 1 min · 26 words

11866

편집 시간: 2022년 2월 7일 오후 8:55 코드 Algorithm/11866.py at main · Junroot/Algorithm 풀이 큐를 이용하면 쉽게 해결할 수 있다.

2024-09-15 · 1 min · 20 words

1181

편집 시간: 2022년 1월 31일 오후 6:08 코드 Algorithm/1181.py at main · Junroot/Algorithm 풀이 기본적인 정렬 알고리즘을 사용하면된다.

2024-09-15 · 1 min · 18 words

11726

편집 시간: 2022년 2월 9일 오후 6:26 코드 Algorithm/11726.py at main · Junroot/Algorithm 풀이 2xn 타일을 놓을 수 있는 경우의 수를 f(n)이라고 했을 때, f(n) = f(n-1) + f(n-2) 라는 점화식을 발견할 수 있으면 된다. 마지막에 1x2 타일을 놓는 경우가 f(n-1), 2*1을 두 개 놓는 경우가 f(n-2)기 때문이다.

2024-09-15 · 1 min · 48 words

11725

편집 시간: 2022년 2월 24일 오후 2:52 코드 Algorithm/11725.py at main · Junroot/Algorithm 풀이 트리의 루트가 1이라 했기때문에, 1부터 시작하는 bfs로 탐색하면된다. 현재 노드에서 이웃하는 아직 방문하지 않은 노드들이 현재 노드의 자식 노드가 된다.

2024-09-15 · 1 min · 34 words

11724

편집 시간: 2022년 2월 12일 오후 9:37 코드 Algorithm/11724.py at main · Junroot/Algorithm 풀이 1부터 n까지 노드를 확인하면서 새로운 노드를 만날 때마다 bfs로 탐색을 한다. 이렇게 bfs를 한 개수를 구하면 된다.

2024-09-15 · 1 min · 31 words

11723

편집 시간: 2022년 2월 12일 오후 9:56 코드 Algorithm/11723.py at main · Junroot/Algorithm 풀이 x값이 1이상 20이하이므로 길이가 21인 bool 리스트를 만들면 쉽게 해결할 수 있다. 이 때, print()를 사용하면 메모리 초과가 발생하는 문제가 있어서 sys.stdout.write() 를 사용했다.

2024-09-15 · 1 min · 38 words

1167

편집 시간: 2022년 2월 24일 오후 3:15 코드 Algorithm/1167.py at main · Junroot/Algorithm 풀이 1967 위와 같은 문제다.

2024-09-15 · 1 min · 18 words

11660

편집 시간: 2022년 2월 24일 오후 3:10 코드 Algorithm/11660.py at main · Junroot/Algorithm 풀이 Summed-area table을 이용하면 O(n^2)만에 해결이 가능하다.

2024-09-15 · 1 min · 20 words

11650

편집 시간: 2022년 1월 31일 오후 6:09 코드 https://github.com/Junroot/Algorithm/blob/main/backjoon/11650.py 풀이 기본적인 정렬 알고리즘을 사용하면 된다.

2024-09-15 · 1 min · 15 words

1149

편집 시간: 2022년 2월 16일 오후 4:10 코드 Algorithm/1149.py at main · Junroot/Algorithm 풀이 모든 경우의 수를 다 구해보는 방법 밖에 없다. 함수 f(index, last_color)를 만들어 함수를 아래와 같이 정의한다. f(index, last_color): index번째 집이 last_color를 사용하지 못할 때 최소 index부터 n번째 집까지 칠하는데 최소 비용 그러면 아래와 같은 점화식이 만들어진다. f(index, last_color) = min( (index번째 집의 color1 비용) + f(index + 1, color1), (index번째 집의 color2 비용) + f(index + 1, color2) )...

2024-09-15 · 1 min · 92 words

11444

오답 여부: o 편집 시간: 2022년 2월 24일 오후 6:17 코드 Algorithm/11444.py at main · Junroot/Algorithm 풀이 처음에 n의 범위를 보고 피보나치 수의 일반항을 이용하는 문제인 줄 알았으나, n이 굉장히 클 때 부동소수점의 값이 잘못될 수도 있다는 사실을 뒤늦게 알게되었다. 행렬의 제곱을 이용하면 O(log n) 만에 해결이 가능하다.

2024-09-15 · 1 min · 48 words

11404

편집 시간: 2022년 2월 24일 오후 2:39 코드 11404번: 플로이드 풀이 정석적인 플로이드 워셜 알고리즘 문제다.

2024-09-15 · 1 min · 16 words

11399

편집 시간: 2022년 2월 9일 오후 6:23 코드 Algorithm/11399.py at main · Junroot/Algorithm 풀이 최소값을 구하기 위해서는 작은 수 순서대로 큰 수에 곱해져야된다. 증명은 따로 하지 않겠다.

2024-09-15 · 1 min · 27 words

11279

편집 시간: 2022년 2월 12일 오후 9:43 코드 Algorithm/11279.py at main · Junroot/Algorithm 풀이 1927 와 풀이가 같다.

2024-09-15 · 1 min · 18 words

11053

오답 여부: o 편집 시간: 2022년 3월 14일 오후 1:21 코드 Algorithm/11053.py at main · Junroot/Algorithm Algorithm/11053-2.py at main · Junroot/Algorithm 풀이 느린 풀이 처음에는 함수 f(index, current_number)를 만들어 점화식을 만들었다. f(index, current_number): 수열 A의 index부터 n - 1번째 까지 중에서 current_number보다 큰 수들로 이루어진 부분 수열의 최대 길이 a[index] > current_number 인 경우: f(index, current_number) = max( 1 + f(index+1, a[index]), f(index+1, current_number) ) a[index] ≤ current_number 인 경우: f(index, current_number = f(index+1, current_number)...

2024-09-15 · 1 min · 140 words

11050

편집 시간: 2022년 2월 7일 오후 8:48 코드 Algorithm/11050.py at main · Junroot/Algorithm 풀이 팩토리얼을 계산하는 함수를 만들면된다. 중복되는 팩토리얼 계산이 있어서 dp를 사용했다.

2024-09-15 · 1 min · 24 words