no image
[Kotlin] BOJ14719 빗물
링크 : https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 소스코드(Implement) import java.io.BufferedReader import java.io.FileInputStream import java.io.InputStreamReader import kotlin.math.abs //(1 ≤ H, W ≤ 500) private var H = 0 //세로 private var W = 0 //가로 private va..
2023.02.27
no image
[Kotlin] BOJ1553 도미노 찾기
링크 : https://www.acmicpc.net/problem/1553 1553번: 도미노 찾기 도미노의 크기는 1×2이고, 크기가 1×1인 칸으로 나누어져 있다. 칸은 수를 나타내며, 위와 같이 총 28가지가 있다. 크기가 8×7인 격자가 있고, 격자의 각 칸에는 정수가 하나씩 들어있다. 위의 도 www.acmicpc.net 소스코드(BackTracking) import java.io.BufferedReader import java.io.FileInputStream import java.io.InputStreamReader private var count = 0 private val MY = arrayOf(0,1)//우 상 private val MX = arrayOf(1,0)//우 상 private..
2023.02.25
no image
[Kotlin] BOJ11562 백양로 브레이크
링크 : https://www.acmicpc.net/problem/11562 11562번: 백양로 브레이크 서울 소재 Y모 대학교에서 대규모 공사를 진행하면서, 학교가 마치 미로처럼 변해버리고 말았다. 공사 이전까지는 어떤 건물에서 출발하더라도 다른 모든 건물로 갈 수 있는 길이 있었으나, 공 www.acmicpc.net 소스코드(Floyd Warshall) import java.io.* private var N = 0 //건물의 수 (n ≤ 250) private var M = 0 //길의 수 (m ≤ n * (n - 1) / 2 ) private var K = 0 //질문 수 (1 ≤ k ≤ 30,000) private val bw = BufferedWriter(OutputStreamWriter(Sy..
2023.02.15
no image
[Kotlin] BOJ2665 미로만들기
링크 : https://www.acmicpc.net/problem/2665 2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1 ≤ n ≤ 50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net 알고스팟 문제와 상당히 유사한 (거의 빼다박은 수준) 문제 ( 알고스팟 링크 : https://www.acmicpc.net/problem/1261 ) 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 ..
2023.02.03
no image
[Kotlin] BOJ5972 택배 배송
링크 :https://www.acmicpc.net/problem/5972 5972번: 택배 배송 농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 www.acmicpc.net 소스코드(Dijkstra) import java.io.BufferedReader import java.io.FileInputStream import java.io.InputStreamReader import java.util.PriorityQueue import java.util.StringTokenizer private var N = 0 //헛간의 개수 (1
2023.02.01
no image
[Kotlin] BOJ1261 알고스팟
링크 :https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 문제에서 주어진 배열에서 벽은 거리가 1인 노드, 벽이 없는 빈 방은 거리가 0인 노드라고 계산해서 시작점에서 마지막 노드까지 다익스트라를 돌려 최단거리를 구하는 방식의 풀이로 문제를 해결했다. 소스코드 (Dijkstra) import java.io.BufferedReader import java.io.FileInputStream import java.io.InputS..
2023.01.31
no image
[Kotlin] BOJ1238 파티
링크 :https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net ◆ 이번 문제에서 오답포인트 문제를 풀 때 X마을에 사는 친구의 X마을까지의 최단거리는 0인데, 다익스트라 함수에 X를 놓고 돌려버려서 오답이 나왔었다. (X마을에서 굳이 다른 마을까지 가서 X마을까지 도달하는 최단거리를 갱신하고 있었던 것) 해당 문제에 33퍼에서 오답이 나오시는 분들은 이 내용을 참고해서 디버깅해보시길 바랍니다. ◆ 추가로 깨달은 점 A노드..
2023.01.30
no image
[Kotlin] BOJ10473 인간 대포
링크 : https://www.acmicpc.net/problem/10473 10473번: 인간 대포 입력은 한 개의 길찾기 문제를 표현한다. 첫 줄에는 두 개의 실수가 입력되며 각각은 당신이 현재 위치한 X, Y좌표이다. 두 번째 줄에는 목적지의 X, Y좌표가 실수로 입력된다. 이어지는 줄에는 대 www.acmicpc.net 소스코드(Dijkstra) import java.io.BufferedReader import java.io.FileInputStream import java.io.InputStreamReader import java.util.PriorityQueue import kotlin.math.min private const val HUMAN_SPEED = 5 private lateinit ..
2023.01.27
no image
[Kotlin] BOJ1525 퍼즐
링크 : https://www.acmicpc.net/problem/1525 1525번: 퍼즐 세 줄에 걸쳐서 표에 채워져 있는 아홉 개의 수가 주어진다. 한 줄에 세 개의 수가 주어지며, 빈 칸은 0으로 나타낸다. www.acmicpc.net # 배운점 ◆ Array형태를 String으로 변환하여 String의 index를 좌표계로 사용하여 계산하는법을 배웠다. val zeroIndex = node.map.indexOf('0') val currentY = zeroIndex / 3 val currentX = zeroIndex % 3 배열을 String으로 변환했을 시 현재 위치를 배열의 좌표로 다시 변환하고 싶은 경우 ⊙ 현재 위치의 y좌표 : 현재보고있는 StringIndex / 배열의 너비 ⊙ 현재 위..
2023.01.24