일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 싸피셜
- 코딩테스트
- 인프런
- 싸피10기
- swea
- 싸피 대전캠퍼스
- SSAFYcial
- 자바스크립트 자료구조
- 자바스크립트
- 알고리즘 자바
- 코드트리
- 싸피
- 싸피11기
- 알고리즘
- 비동기
- 리액트
- 자바 알고리즘
- 싸피 기자단
- 개발자
- 백준
- jpa
- 프로그래머스
- 자바 코딩테스트
- ssafy
- 싸피 12기
- 코딩테스트 자바
- 프론트엔드
- 싸피 10기
- 자료구조
- 싸피 11기
- Today
- Total
목록알고리즘 Algorithms (9)
병아리의 코딩 일기
https://swexpertacademy.com/main/code/userProblem/userProblemDetail.do?contestProbId=AWKaG6_6AGQDFARV SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 오늘의 문제는 D4 난이도의 수영대회 결승전입니다. 3초마다 생기는 토네이도 때문에 조금 까다로웠던 문제입니다. BFS를 활용해 풀 수 있었습니다. 풀이는 주석에 자세히 설명해두었습니다. 궁금한 점이나 피드백은 댓글에 남겨주세요! 정답 코드 package SSAFY_A형특강; import java.io.BufferedReader; import java.io.IOException; im..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V1SYKAaUDFAWu SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 오늘은 SWEA의 2112번 문제 보호 필름입니다. 삼성SW역량테스트 모의 A형 문제입니다. 조합 코드를 이용한 부분집합을 구현한 강사님의 코드가 제일 깔끔한 것 같아 참고하여 풀어봤습니다. 해설은 주석에 자세히 설명하였습니다. 풀이는 아래와 같습니다! 정답 코드 package SSAFY_A형특강; import java.io.BufferedReader; import java.io.IOExceptio..
https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 문제 해결 프로세스 및 꿀팁 대각선도 이동이 가능하므로 길이가 8인 델타 배열을 만듭니다. (팔방탐색) 원래 DFS는 visited 배열을 만들어 검사해줍니다. 하지만 이런 문제같은 경우에는 1을 지날 때 0으로 바꾸어주면 됩니다. map의 좌표 중 1인 곳만 탐색하기 때문에, 0으로 바꾸어준 곳은 더이상 다른 곳에서 탐색하지 않기 때문입니다. 한 가지 꿀팁을 드리자면!! map의 좌표를 w..
https://www.acmicpc.net/problem/24480 24480번: 알고리즘 수업 - 깊이 우선 탐색 2 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 문제 해결 프로세스 이 문제는 이전 깊이 우선 탐색 1 문제와 완전히 동일하지만, 정점을 내림차순으로 방문합니다. Collections.reverseOrder() 을 이용하여 리스트만 내림차순으로 정렬해주면 해결되지만, DFS 알고리즘에 익숙해지기 위해 다시 한 번 풀어보는 것을 추천해드립니다! 정답 코드 package DF..
DFS 의 기본 문제이지만, 함정이 숨어있습니다. 보다시피 정점의 수와 간선의 수가 크다보니 인접행렬을 만들게 되면 메모리 및 시간 초과가 나게 됩니다. 따라서 인접 리스트로 만들어주어야 하고, 문제에서 인접 정점은 오름차순으로 방문한다고 했으니 리스트에 값을 넣은 후 Collections.sort 를 이용하여 오름차순으로 정렬해주어야 한다. R부터 시작해야 한다는 것도 잊지 말자. 정답 풀이 package DFS완전정복; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import j..
문제 요약 격자 내에서 모든 값이 양수로만 이루어진 직사각형 중 최대 크기를 구하는 문제입니다. 그런 직사각형이 없다면 -1 을 출력합니다. 문제 해결 프로세스 이 문제는 완전 탐색으로 풀어야 합니다. 어느 칸에 어떤 숫자가 들어있을 지 모르기 때문이죠. 그렇다면 어떻게 완전탐색을 할 수 있을까요? 저는 직사각형의 시작점 (i, j)을 정하고, 끝점(k, l)을 정해서 풀었습니다. 직사각형 꼭짓점의 행, 열의 좌표가 될 수 있는 범위를 나타내면 다음과 같습니다. (0 ~ n-1 으로 놓고 풀었지만 편의상 아래와 같이 표시할게요.) 시작점 i : 1 ~ n j : 1 ~ m 끝점 k : i ~ n (끝점의 행이 시작점의 행보다는 크거나 같아야 합니다.) l : j ~ m (끝점의 열이 시작점의 열보다는 크..