일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sw expert academy
- swea
- 기능 개발
- 부동소수점
- 고정소수점
- 구현
- 토마토
- 오블완
- 코테
- Comparator
- 프로그래머스
- 데이터
- 티스토리챌린지
- 괄호 회전하기
- 운영 체제
- Comparable
- 컴퓨터구조
- 메뉴 리뉴얼
- 컴퓨터 구조
- 도둑질
- 자바
- 요세푸스
- 백준
- java
- 베스트 앨범
- 순열
- Call-by-Value
- 조합
- 표 편집
- 다단계 칫솔 판매
- Today
- Total
목록백준 (4)
감자는 아직 꿈을 꾼다.
알고리즘 : BFS토마토 시리즈로서 2차원인 7576번과 3차원인 7569번을 설명하도록 하겠다.문제설명 : 7576번 토마토https://www.acmicpc.net/problem/7576링크 참조 내 풀이 이 문제는 시작점이 여러개 일경우의 BFS 문제이다.문제에서도 주어진 것처럼 토마토의 위치가 여러군데에서 시작하고BFS를 따로따로 진행하면 dist배열 초기화가 먼저 이루어져서 겹치는 부분에 대해 처리가 정확히 되지 않는다.간단하게 이 문제를 풀이하면 시작점들을 큐에 집어넣고 BFS를 시작하면 된다.왜냐하면 큐의 특성상 FIFO 이므로 시작점들을 넣고 BFS를 돌리면 순차적으로 각 시작점 위치에서 BFS가 돌아가면서 실행이 되기 때문이다. 큐의 특성으로 거리순으로 저장되는 것 만약에 스택이였으면 하..
String 문제자바의 String 메소드를 활용해서 풀 수 있는 문제3가지 방식으로 풀이를 설명한다문제 설명https://www.acmicpc.net/problem/9996 내 풀이 주어진 패턴을 * 를 기준으로 split하여 앞부분과 뒷부분을 나누고substring을 활용해서 주어진 문자열과 같은지 확인한다.주의할 점은 주어진 문자열이 first와 second의 합보다 작은 것에 예외처리또한 split할 때 그냥 * 로 하면 아래와 같은 에러가 뜨게된다.**Dangling meta character ' * ' near index 0+, * , ^ 로 나누고자 할 때도 발생하는 오류로**앞에 \ 기호 두개를 붙여야 된다. import java.io.BufferedReader;import java.io...
알고리즘 설명 : 다익스트라 알고리즘최단 경로 알고리즘을 사용한다.다익스트라 알고리즘은 한 정점에서 다른 모든 정점에 대한 최단 경로를 정하는 알고리즘이다.여기서 최단 경로란 상황에 따라서 달라진다.가중치가 있을 경우 가중치의 합이 가장 작은 길이 최단 경로이고,가중치가 없을 경우 간선의 갯수가 가장 작은 길이 최단 경로다.문제 설명https://www.acmicpc.net/problem/1753시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율1 초 256 MB 224898 69029 35315 25.902%문제방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 10 이하의 자연수이다.입력첫째 줄에 정점의 개수 V와 간선..
알고리즘 : 큐 or 연결리스트https://www.acmicpc.net/problem/1158 문제 설명문제요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오.두 가지의 풀이 방법이 있다.1. 큐큐를 사용해서 푸는 것이 제일 연상하기 쉬운 풀이 방법이다.하지만 메모..