no image
[Kotlin] BOJ14725 개미굴
링크 :https://www.acmicpc.net/problem/14725 14725번: 개미굴 첫 번째 줄은 로봇 개미가 각 층을 따라 내려오면서 알게 된 먹이의 정보 개수 N개가 주어진다. (1 ≤ N ≤ 1000) 두 번째 줄부터 N+1 번째 줄까지, 각 줄의 시작은 로봇 개미 한마리가 보내준 먹이 www.acmicpc.net Trie자료구조를 이용하여 주어진 문제에 맞는 트리를 만든 후에 dfs로 트리를 순회하면서 depth에 맞는 Text 출력 소스코드 (Trie, DFS) import java.io.* private var N = 0 //먹이의 정보 개수 (1 ≤ N ≤ 1000) private val trieRootNode = Node() private val bw = BufferedWrit..
2023.04.24
no image
[Kotlin] BOJ14499 주사위 굴리기
링크 : https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 지문을 이해하기가 힘들었던 문제. 주어진 전개도에 적혀있는 숫자를 절대적인 주사위의 위치(인덱스)라고 생각하고 해당 인덱스에 맞에 주사위의 값을 가진 배열을 만들어두고, 주사위를 굴릴때마다 주사위에 외면 숫자를 갱신해주면 된다. //1 : 위 //2 : 북 //3 : 동 //4 : 서 //5 : 남 //6 : 바닥 소스코드..
2023.04.17
no image
[Kotlin] BOJ16234 인구 이동
링크 : https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 주어진 지도속에서 국가의 연합 번호를 따로 배열에 저장해두고, 해당 연합이 가지게되는 인구수 ( 총 인구 / 연합에 속한 국가수)의 값을 연합번호에 맞는 인덱스로 따로 배열에 저장해 두고, 구해놓은 연합번호와 인구수를 바탕으로 전체 맵의 인구수를 다시 갱신하는 방법으로 구현 소스코드 (Implement, BFS) import java.io.BufferedReader impo..
2023.04.10
no image
[Kotlin] BOJ2573 빙산
링크 : https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 주어진 배열을 순회하면서 빙산을 녹이고, BFS를 통해서 빙산의 덩어리의 개수를 구하는 방식의 풀이 소스코드 (Implement, BFS) import java.io.BufferedReader import java.io.FileInputStream import java.io.InputStreamReader import java.util.LinkedList import java.uti..
2023.04.06
no image
[Kotlin] BOJ2636 치즈
링크 : https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 치즈 내부 공간과 외부 공간을 구분하기 위해서 매번 치즈를 녹이기 전에 미리 bfs로 외부공간을 "2"로 표시해두고 "2"인 공간과 인접해있는 치즈만 녹이는 방식으로 풀이 소스코드 (Implement, BFS) import java.io.BufferedReader import java.io.FileInputStream import java.io.InputStreamReader import java.util...
2023.04.05
no image
[Kotlin] BOJ2116 주사위 쌓기
링크 : https://www.acmicpc.net/problem/2116 2116번: 주사위 쌓기 첫줄에는 주사위의 개수가 입력된다. 그 다음 줄부터는 한 줄에 하나씩 주사위의 종류가 1번 주사위부터 주사위 번호 순서대로 입력된다. 주사위의 종류는 각 면에 적혀진 숫자가 그림1에 있는 www.acmicpc.net 주사위의 반대편 인덱스를 미리 저장해 둠으로 써, 매번 인접한 칸의 인덱스를 구할 필요없이 바로 접근 가능함을 알 수 있었던 문제 소스코드 (Implement) import java.io.BufferedReader import java.io.FileInputStream import java.io.InputStreamReader private var N = 0 // 주사위의 개수 (10,000개..
2023.04.04
no image
[Kotlin] BOJ1966 프린터 큐
링크 : https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 소스코드 (Implement) import java.io.BufferedReader import java.io.FileInputStream import java.io.InputStreamReader import java.util.* private var caseCount = 0 private fun main(){ val br = BufferedReader(InputStreamReader(Sy..
2023.03.10
no image
[Kotlin] BOJ1913 달팽이
링크 : https://www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 소스코드 (Implement) import java.io.BufferedReader import java.io.FileInputStream import java.io.InputStreamReader import kotlin.math.pow private val MY = arrayOf(-1,0,1,0)//아래,우,위,좌 private val MX = arrayOf(0,1,0,-1)//아래,우..
2023.03.09
no image
[Kotlin] BOJ1063 킹
링크 : https://www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 소스코드(Implement) import java.io.BufferedReader import java.io.FileInputStream import java.io.InputStreamReader private lateinit var kingPoint :Point private lateinit var stonePoint :Point private var N = 0 // N은 50보다 작거나 같은 자..
2023.03.06