일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- Java
- BAEKJOON
- 단위테스트
- Vue.js
- mobx
- Algorithm
- 우아한테크캠프
- Spring
- Backtracking
- 탐색알고리즘
- 연습문제
- SQL
- Database
- 웹프로그래밍
- JavaScript
- springboot
- 프레임워크
- codeground
- JPA
- 데이터베이스
- TypeScript
- DFS
- 우아한형제들
- Vue
- BFS
- framework
- react
- 백준
- BOJ
- Today
- Total
목록전체 글 (89)
설모의 기록
이 문제는 1 / m 만큼씩 1을 나눠 구간을 만들고 그 다음으로 주어지는 숫자들을 그 구간별로 나눈 후, 구간별로 몇 개의 숫자가 존재하는지 출력하는 문제입니다. 쉽다고 생각하고 몇번이나 코드를 제출했지만 계속 '틀렸습니다' 만 반복해서 대체 왜 그러는건가 double 에 대해 찾아봤습니다. 알게된 내용은 다음과 같습니다.컴퓨터가 숫자를 처리할 때에는 1.xxxxx(지수부) * 2^(가수부) 로 인식하기 때문에 2의 배수가 아니거나 소수인 값은 내가 저장한 값이 그대로 저장되지 않는 경우가 있다고 합니다. 이 상황에서 오차가 발생하기 때문에 그 오차를 해결하는 과정을 확인하기 위한 문제였다고 볼 수 있습니다. 예를 들어, double a = 0.1; 이러한 코드를 작성하였다 해도 a에는 0.1 이 아니..
이 문제는 주어진 숫자들 중 중복되지 않고 순서에 관계없이 6개의 숫자를 골라 오름차순으로 정렬해 출력하는 문제입니다. 재귀함수를 이용해 모든 경우를 고른 후 이전에 뽑았던 숫자조합인지를 확인해도 되지만, 굳이 전에 뽑은 숫자 조합을 다시 뽑지 않도록 한번의 반복문과 calculate 함수 내에서 백트랙킹을 이용했습니다.
이 문제는 그래프에서 한 정점에서 다른 정점으로 가는 최단경로의 합이 가장 작은 정점을 구하는 문제입니다. dfs나 bfs로 해도 풀리겠지만, 처음 알게 된 폴로이드 와샬 알고리즘을 적용해보기 위해 저는 이 알고리즘을 사용했습니다. 폴로이드 와샬 알고리즘 정점 사이의 최단경로를 구할 때에 자주 사용하는 것이 다익스트라 알고리즘인데요. 다익스트라 알고리즘의 단점은 정점 사이의 가중치가 음수일 때 사용할 수 없다는 점입니다. 이에 반해 폴로이드 와샬 알고리즘은 가중치가 음수여도 사용이 가능합니다. 이름이 어렵게 생겨서 뭐지? 했는데 알고 보니 3중 포문을 이용해 모든 정점과 정점사이의 거리를 구하는 알고리즘이었습니다. 먼저 kebin이라는 int[][] 배열을 초기화하고, 주어진 정점들의 관게를 입력합니다...
이 문제는 4개짜리 테트로미노 블럭을 주어진 이차원 배열에 놨을 때 배열의 값의 합이 최대가 되는 값을 구하는 문제입니다. 폴리오미노의 조건은 아래와 같습니다.정사각형은 서로 겹치면 안된다.도형은 모두 연결되어 있어야 한다.정사각형의 꼭지점끼리 연결되어 있어야 한다. 즉, 변과 꼭지점이 맞닿아 있으면 안된다.이 때, 정사각형 4개를 이어붙인 폴리오미노를 테트로미노라 하고 아래의 그림과 같이 5가지 종류입니다. 저도 처음에는 '5개를 어떻게 회전하지.. 4*4배열을 생성해서 그 배열을 회전해야하나..' 하는 함정에 빠졌습니다. 이것을 어떻게 해결하냐가 관건입니다. 이 문제는 dfs로 간단하게 풀리는 문제입니다. 'ㅜ' 블럭을 제외한 4개의 블럭은 한번에 그릴 수 있죠? 다시 말하면 dfs로 한번에 탐색할 ..