일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- 상한가 이유
- 백준
- 급등주
- 테마주
- java
- boj
- 급등주 분석
- 경제뉴스
- 주식
- 손에 잡히는 경제 요약
- 손경제 요약
- 알고리즘
- 손에 잡히는 경제
- 경제뉴스 요약
- 급등 이유
- 파이썬
- Python
- 코딩테스트
- 주식 상한가
- Programmers
- 주식 분석
- 이진우의 손에 잡히는 경제
- 자바
- 코테
- 상한가
- 경제
- 이진우
- 손경제
- 상한가 분석
- Today
- Total
목록앨고리듬 알고리즘 (16)
Completion over Perfection
백준 1976 - 여행가자 (JAVA) 1976번: 여행 가자 (acmicpc.net) 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net 유니언파인드로 풀려고 했는데, 이게 유니언파인드로 푼게 맞는지 모르겠네요. 유니언파인드에 대한 대략적인 개념만 읽고 푼 코드라서.. 이렇게 푸는 사람도 있구나~ 정도로 참고만 해주시면 좋을 것 같습니다. 푼 방법은 아래와 같습니다. [코드를 짠 대략적인 흐름] - map 2차원 배열에 0과 1로 제공되는 연결정보를 그대로 저장해준다. - map배열에서 1일 경우에는 서로 여행..
백준 10026 - 적록색약 (JAVA 자바) 비교적 쉬운편에 속하는 DFS 문제입니다. 쉬운만큼 기초다지기에 좋은 문제입니다. 저는 아래와 같이 풀었습니다. 참고해주세요~ 1. 데이터입력받을 때 1줄씩 받고, charAt 을 통해 한글자씩 잘라서 map[][] 배열에 저장해준다. 2. 색약이 아닌 사람의 경우와 색약인 사람의 경우를 나눠서 2번 DFS를 돌려준다. 3. 색약인 사람의 경우에는 녹색과 적색을 구분 못하므로, G를 R로 모두 바꿔준 후에 DFS를 돌렸다. 4. visits[][] 배열은 두번째 돌리기 전에 초기화를 시켜줘야 된다. 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 32 33 ..
백준 2468 - 안전 영역 (JAVA 자바) 기본적인 풀이방법은 유기농 배추(1012번: 유기농 배추 (acmicpc.net))와 크게 다르지 않지만, 차이점은 아래와 같습니다. 1) 물의 높이에 따라서 활성화되는 지역과 안되는 지역을 구분해주고 2) 그에 따라서 DFS 돌린 횟수를 모든 케이스에서 구한 뒤, 3) 그 중에서 가장 최댓값을 구한다. 제가 풀이한 방법을 설명 드리겠습니다. - map[][] 배열을 통해서 주어진 안전 지대에 대한 값들을 받습니다. - visits[][] 배열로 dfs를 돌 때, 특정 지역을 방문했는지 안했는지에 대한 체크를 해줍니다. - copy_map[][]은 강수량에 따라서 잠기는 지역을 체크하기 위한 배열 정보입니다. map[][]을 바로 업데이트하면 안되는 이유가,..
백준 2252 - 줄 세우기 (JAVA 자바) www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1≤N≤32,000), M(1≤M≤100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의미이 www.acmicpc.net 문제집과 굉장히 유사한 문제입니다. 문제집도 같이 풀어보시면 좋을 것 같습니다. PriorityQueue를 이용해서 풀면 됩니다. 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 32 33 34 35 36 37 38 39 40 41 ..
백준 2075 - N번째 큰 수 (JAVA 자바) www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 우선순위큐의 개념을 이해하는 데 좋은 문제 같습니다. 우선순위큐에 다 넣어주고, 5번째 큰 수를 q.poll()로 꺼내주어 출력하면 됩니다. 우선순위큐는 우선순위가 높은(숫자가 작은) 것부터 출력하는 것이 디폴트이기 때문에, 큰수부터 출력하도록 Collections.reverseOrder()를 넣어서 선언해줍시다~ 1 2 3 4 5 6 7 8 9 10 11 12 13 ..
백준 4963 - 섬의 개수 (JAVA 자바) www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net DFS인데 다른 문제들과는 다르게 8방향을 모두 봐야합니다. (상하좌우 + 각 대각선) 그 부분만 주의해서 코딩하시면 됩니다. 어려운 문제는 아니었습니다. 아! 그리고 while문을 사용해서 0 0 이 들어올때까지 돌려줘야됩니다. (입력의 마지막줄에 0이 두개 들어옴) 자세한 내용은 코드를 참고해주세요~ 1 2 3 4 5 6 7 8 9 10 11 12 13 1..
백준 11724 - 연결 요소의 개수 (JAVA 자바) www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 기본적인 DFS 문제입니다. 아래 주의사항들을 참고하셔서 코드 짜시면 됩니다. 1. 중간에 간선이 끊겨있을 수 있으므로, 방문하지 않은 지점에서 DFS가 다시 시작할 수 있도록 해줍니다. (for문 안에 dfs를 배치할 것) 2. DFS가 한번 끝날때마다 cnt 변수를 +1 해준 뒤, 마지막에 ..
백준 2606 - 바이러스 (JAVA 자바) www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net DFS의 가장 기본이 되는 문제 같습니다. 풀이방법은 아래의 사항들을 참고하여 풀어주시면 됩니다. 1. 시작지점은 무조건 1번 컴퓨터에서부터 시작되므로, 1번에서 연결된 컴퓨터들만 모두 돌면서 wasted 변수를 증가시켜준다. 2. 한번 방문한 지점은 방문체크를 해주고, 다시 방문 안하도록 해준다. 3. 간선으로 연결되어 있는 곳은 DFS를 돌려주고, DFS를 돌기 전에 ..