차곡차곡 성 쌓기
article thumbnail
[백준] 배열 돌리기 - 17176 : Java
알고리즘/백준 2024. 2. 20. 21:42

17276번: 배열 돌리기 각 테스트 케이스에 대해 회전 연산을 마친 후 배열의 상태를 출력한다. n줄에 걸쳐 각 줄에 n개의 정수를 공백으로 구분하여 출력한다. www.acmicpc.net 문제 설명 크기가 n x n인 2차원 정수 배열 X가 있다. (n은 홀수) X를 45° 의 배수만큼 시계방향 혹은 반시계방향으로 돌리려고 한다. X를 시계 방향으로 45° 돌리면 아래와 같은 연산이 동시에 X에 적용되어야 한다: X의 주 대각선을 ((1,1), (2,2), …, (n, n)) 가운데 열 ((n+1)/2 번째 열)로 옮긴다. X의 가운데 열을 X의 부 대각선으로 ((n, 1), (n-1, 2), …, (1, n)) 옮긴다. X의 부 대각선을 X의 가운데 행 ((n+1)/2번째 행)으로 옮긴다. X의 가..

article thumbnail
[백준] 빗물 - 14719 : Java
알고리즘/백준 2024. 2. 20. 21:28

문제 링크 성능 요약 메모리: 14412 KB, 시간: 144 ms 분류 구현, 시뮬레이션 문제 설명 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 비는 충분히 많이 온다. 고이는 빗물의 총량은 얼마일까? 입력 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치부터 차례대로 W개 주어진다. 따라서 블록 내부의 빈 공간이 생길 수 없다. 또 2차원 세계의 바닥은 항상 막혀있다고 가정하여도 좋다. 출력 2차원 세계에서는 한 칸의 용량은 1이다. 고이는 빗물의 총량을 출력하여라. 빗물이 전혀 고이지 않을 경우 0을 출력하여라..

article thumbnail
[백준] RGB거리 :1149 -Java
알고리즘/백준 2024. 2. 17. 15:11

문제 설명 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 입력 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000..

article thumbnail
[백준] 불우이웃돕기 : 1414 - Java
알고리즘/백준 2024. 2. 12. 15:53

문제 1414번: 불우이웃돕기 첫째 줄에 컴퓨터의 개수 N이 주어진다. 둘째 줄부터 랜선의 길이가 주어진다. i번째 줄의 j번째 문자가 0인 경우는 컴퓨터 i와 컴퓨터 j를 연결하는 랜선이 없음을 의미한다. 그 외의 경우는 랜선 www.acmicpc.net [Gold III] 불우이웃돕기 - 1414 분류 그래프 이론, 최소 스패닝 트리, 문자열 제출 일자 2024년 2월 12일 15:18:15 문제 설명 다솜이는 불우이웃 돕기 활동을 하기 위해 무엇을 할지 생각했다. 마침 집에 엄청나게 많은 랜선이 있다는 것을 깨달았다. 마침 랜선이 이렇게 많이 필요 없다고 느낀 다솜이는 랜선을 지역사회에 봉사하기로 했다. 다솜이의 집에는 N개의 방이 있다. 각각의 방에는 모두 한 개의 컴퓨터가 있다. 각각의 컴퓨터는..

article thumbnail
[백준] 다리만들기2 : 17472 - Java (구현, MST)
알고리즘/백준 2024. 2. 12. 00:24

문제 [Gold I] 다리 만들기 2 - 17472 문제 설명 섬으로 이루어진 나라가 있고, 모든 섬을 다리로 연결하려고 한다. 이 나라의 지도는 N×M 크기의 이차원 격자로 나타낼 수 있고, 격자의 각 칸은 땅이거나 바다이다. 섬은 연결된 땅이 상하좌우로 붙어있는 덩어리를 말하고, 아래 그림은 네 개의 섬으로 이루어진 나라이다. 색칠되어있는 칸은 땅이다. 나라의 정보가 주어졌을 때, 모든 섬을 연결하는 다리 길이의 최솟값을 구해보자. 입력 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다 출력 모든 섬을 연결하는 다리 길이의 최솟값을 출력한다. 모든..

article thumbnail
[백준] ACM Craft : 1005 : Java - 위상정렬
알고리즘/백준 2024. 2. 5. 20:06

문제 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 핵심 풀이 이 문제는 건설해야 할 건물(W)을 지을 수 있는 최소시간을 구하는 문제이다. 건물을 짓는 순서가 있고 싸이클이 없는 그래프이므로 '위상 정렬'을 이용한다. 더 고려해야 하는 점은 건물을 짓는데 걸리는 시간이 있기 때문에, 선수 건물이 여러 개라면 그 중 가장 오래 걸리는 건물 시간에 맞춰야 한다. 즉 A -> C , B -> C라는 선후 관계가 있을 때 A 건물을 지을 때 30, B 건물을 짓는데 50이라면 50분 있다가 C건물을 지어야한..

article thumbnail
[백준] 줄 세우기 - 2252 : 위상 정렬 - JAVA
알고리즘/백준 2024. 2. 3. 15:33

문제 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 핵심 풀이 위상 정렬을 이용해야하는 문제이다. 왜 위상 정렬을 이용하여 해결해야 하는가? 이 문제는 일부 학생들의 키 순서가 주어졌을 때, 전체 학생을 키 순서대로 줄을 세운 결과를 반환해야 한다. 즉 일분 학생간의 순서를 지키며, 전체 학새생을 줄 세워야한다. 위상정렬은 사이클이 없는 방향 그래프에서 노드 순서를 찾는 알고리즘이다. 예를 들어 과목의 선수과목이 있는 과목들이 주어질 때 선수과목을 고려해서 수강 순..

article thumbnail
[백준] 특정 거리의 도시 찾기 - Java : 그래프
알고리즘/백준 2024. 1. 29. 17:43

✓ 문제 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 그래프들의 단방향 정보가 주어지고 출발 도시로부터 최단 거리가 X인 다른 정점들을 찾는 문제이다. 단순히 거리가 X인 것이 아니라 최단거리여야 한다. ✓ 풀이 처음에는 DFS탐색을 이용하여 dpeth가 X일 때를 찾았다. 하지만 문제는 최단거리를 구해야 된다는 점이었다. 최단거리를 갱신해주기 위해서는 결국 모든 탐색을 다 해줬어야 했다. 비효율적인 것 같아서 더 효율적인 방법을 찾았..

article thumbnail
[백준] 상어 초등학교 : 21608 : Java - 구현
알고리즘/백준 2024. 1. 23. 17:40

1. 문제 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 2. 접근 N의 범위는 3

article thumbnail
[백준] 강의실 배정 : 11000 : Java - 그리디
알고리즘/백준 2024. 1. 22. 22:11

1. 💎 문제 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 2. 🤔 접근 구해야 하는 것은 최소 강의실의 수이다. 그러므로 n개의 강의실을 운영하다가 n개의 강의실이 모두 꽉 차있어 새로운 강의를 열 수 없을 때, 강의실을 늘려준다. 1. 우선 순위 큐 사용 n개의 강의실을 운영하기 위해 우선 순위 큐를 사용한다. 왜냐하면 최소의 강의실을 유지하기 위해서는 여러 개의 강의실 중 가장 일찍 끝나는 강의실에 새로운 강의를 배정해야 되기 때문이다. 그러므로 항상 가장 일찍 끝나는 강의실을 찾기 위해 삽입 시 오름차순 정렬을 해주는 우선 순위 큐를 사용한다. 2..

728x90