본문 바로가기

[BOJ]4

[BOJ] [C++] 1028 다이아몬드 광산 https://www.acmicpc.net/problem/1028 1028번: 다이아몬드 광산 첫째 줄에 R과 C가 주어진다. R과 C는 750보다 작거나 같은 자연수이다. 둘째 줄부터 R개의 줄에는 다이아몬드 광산의 모양이 주어진다. www.acmicpc.net 입력 내에서 가장 큰 다이아몬드 모양의 길이를 출력하는 문제이다. 문제 해결을 위해선 공통적으로, 대각선 길이에 대한 아이디어가 필요하다. 문제의 핵심은 grid[i][j]로부터 뻗어나오는 대각선의 길이를 배열에 저장하는 것이다. 이 과정에서 Dinamic Programming을 사용하고, 이후는 다양한 방법으로 접근할 수 있다. DP_D[2][i][j], DP_U[2][i][j]를 만들었다. 각각은 연속된 1의 개수를 의미한다. DP_D[0].. 2023. 11. 4.
[BOJ] [C++] 3197 백조의 호수 https://www.acmicpc.net/problem/3197 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net BFS문제인데, '두 백조가 만날 때 까지 반복한다'는 조건이 달렸다. 배열의 크기가 1500*1500으로 크기 때문에, 효율적인 코드 작성이 필요하다. 다음과 같은 기본 구조를 가지고 문제를 해결한다. 기본 구조 입력을 받고, 물 공간과 백조 위치를 Queue에 넣는다 >>> BFS 1회 실행 >>> 백조가 만나는지 확인 >>> 만났다면 break, 만나지 않았다면 .. 2023. 8. 28.
[BOJ] [C++] 22940 선형 연립 방정식 보호되어 있는 글 입니다. 2023. 8. 27.
[BOJ] [C++] 1328 고층빌딩 보호되어 있는 글 입니다. 2023. 8. 27.