Uknow's Lab.
article thumbnail
[백준 25585번] [Java, Kotlin] 86 ─에이티식스─ 1
코딩테스트/Kotlin 2023. 8. 16. 18:14

https://www.acmicpc.net/problem/25585 25585번: 86 ─에이티식스─ 1 첫 번째 줄에 전장의 크기 $N$이 주어진다. 전장은 $N \times N$ 크기 좌표로 이루어져 있다. 다음 $N$개의 줄에는 전장의 정보가 주어진다. 각 줄마다 $N$개의 좌표 정보가 주어지며 0은 빈칸, 1은 레기 www.acmicpc.net 난이도 : 골드 5 태그 : 백트래킹, 브루트포스 설명 대각선으로만 이동할 수 있는 장기말로, 다른 적들을 다 잡을 수 있는지, 잡을 수 있다면 얼마만큼의 시간이 소요되는지 구하는 문제입니다. 처음엔 n이 꽤 작길래, 대각선 방향으로 이동하는 모든 경우의 수를 다 확인하였으나, 당연하게도 시간초과. n이 최대 100이여도 n이 1 만큼 증가할때마다 말도안..

article thumbnail
[백준 1331번] [Kotlin] 나이트 투어
코딩테스트/Kotlin 2023. 8. 4. 02:14

https://www.acmicpc.net/problem/1331 1331번: 나이트 투어 나이트 투어는 체스판에서 나이트가 모든 칸을 정확히 한 번씩 방문하며, 마지막으로 방문하는 칸에서 시작점으로 돌아올 수 있는 경로이다. 다음 그림은 나이트 투어의 한 예이다. 영식이는 6× www.acmicpc.net 난이도 : 실버 4 태그 : 구현, 시뮬레이션 설명 6 * 6 체스판 위 한 점에서 시작하여 나이트가 이동하며 모든 칸을 한 번씩만 (두 번 이상 같은 곳을 방문하면 실패) 방문하면서, 첫 시작점으로 돌아올 수 있는지 확인하는 문제입니다. 해당 문제 매 좌표 입력을 받을 때 마다 체크해야 할 것이 있습니다. 1. 이미 방문했는가(2번 이상 같은 칸을 반복할 수 없음) -> 2차원 boolean - v..

article thumbnail
[백준 2563번] [Kotlin] 색종이
코딩테스트/Kotlin 2023. 8. 4. 02:01

https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 난이도 : 실버 5 태그 : 구현 설명 도화지 위에 색종이를 붙였을 때, 색종이의 전체 크기를 출력하는 문제입니다. 어떻게 풀까 고민을 좀 해봤는데, 도화지의 가로, 세로의 크기가 100밖에 되지 않는 것을 보고 그냥 100 x 100인 2차원 boolean 배열을 만든 뒤, 색종이로 덮인 부분을 true로 처리하여 최종적으로 true인 부분의 개수만 카운팅하여 출력하면 될 것 같습니다. 소스코드 f..

article thumbnail
[백준 16985번] [Kotlin] Maaaaaaaaaze
코딩테스트/Kotlin 2023. 7. 30. 21:36

https://www.acmicpc.net/problem/16985 16985번: Maaaaaaaaaze 첫째 줄부터 25줄에 걸쳐 판이 주어진다. 각 판은 5줄에 걸쳐 주어지며 각 줄에는 5개의 숫자가 빈칸을 사이에 두고 주어진다. 0은 참가자가 들어갈 수 없는 칸, 1은 참가자가 들어갈 수 있는 칸을 www.acmicpc.net 난이도 : 골드 2 태그 : 구현, 그래프 이론, 브루트포스 알고리즘, 그래프 탐색, 너비 우선 탐색 설명 3차원 큐브를 탈출하는 문제입니다. 한 층씩 좌우로 층을 회전할 수 있고, 한 층씩 마음대로 쌓을 수 있기 때문에, 각 층을 회전하여 만들 수 있는 모든 경우의 수를 탐색하는 완전탐색(DFS) 1번, 각 층을 쌓아 만들 수 있는 모든 경우의 수를 탐색하는 완전탐색(DFS..

article thumbnail
[백준 5648번] [Kotlin] 역원소 정렬
코딩테스트/Kotlin 2023. 7. 19. 00:23

https://www.acmicpc.net/problem/5648 5648번: 역원소 정렬 모든 원소가 양의 정수인 집합이 있을 때, 원소를 거꾸로 뒤집고 그 원소를 오름차순으로 정렬하는 프로그램을 작성하세요. 단, 원소를 뒤집었을 때 0이 앞에 선행되는 경우는 0을 생략해야합니 www.acmicpc.net 난이도 : 실버 5 태그 : 정렬 설명 문제 자체는 쉬웠으나, 입력이 꽤 특이하여 애먹었던 문제였습니다. 처음엔 카운팅 변수를 하나 두고 체크했는데 왜인지 계속 오류가 나서, BufferedReader를 사용해 null을 입력받을 때 까지 계속 입력받는 방법으로 구현했습니다. (BufferedReader는 더 이상 입력받을게 없을 경우 null 반환) 소스코드 import java.util.Strin..

article thumbnail
[백준 1904번] [Kotlin] 01타일
코딩테스트/Kotlin 2023. 7. 15. 01:51

https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 난이도 : 실버 3 태그 : 다이나믹 프로그래밍 설명 다이나믹 프로그래밍에서 웰노운 문제들인 타일 시리즈. 이번엔 1과 00이라는, 조금 특이한 경우네요. 음... 어떻게 풀지 고민하다가, 결국 그냥 하나씩 써보면서 규칙성을 찾아보기로 했습니다. n = 2 11 00 2개 n = 3 100 001 111 3개 n = 4 0000 0011 1100 1001 1111 5개 n = 5 00001 00100 ..

article thumbnail
[백준 11967번] [Kotlin] 불켜기
코딩테스트/Kotlin 2023. 7. 15. 01:35

https://www.acmicpc.net/problem/11967 11967번: 불켜기 (1, 1)방에 있는 스위치로 (1, 2)방과 (1, 3)방의 불을 켤 수 있다. 그리고 (1, 3)으로 걸어가서 (2, 1)방의 불을 켤 수 있다. (2, 1)방에서는 다시 (2, 2)방의 불을 켤 수 있다. (2, 3)방은 어두워서 갈 수 없으 www.acmicpc.net 난이도 : 골드 2 태그 : 그래프탐색, 그래프이론, 너비우선탐색 설명 한 좌표에 다른 좌표의 불을 켤 수 있는 스위치가 있습니다. 복수개일 수 있으며, 스위치를 총 몇 개나 작동시킬 수 있는지(불을 킬 수 있는지)를 구하는 문제입니다. BFS를 사용하면 될 것 같지만, 스위치를 켜서 갈 수 있는 좌표가 늘어남에 따라, 해당 좌표와 인접한 좌표..

article thumbnail
[백준 15904번] [Kotlin] UCPC는 무엇의 약자일까?
코딩테스트/Kotlin 2023. 7. 15. 01:23

https://www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 난이도 : 실버 5 태그 : 그리디, 문자열 설명 주어진 문자열로 UCPC라는 약자를 도출할 수 있는지를 판단하는 문제입니다. 초기 아이디어는 리스트를 하나 두고, 사용한 문자열을 하나씩 빼면서 리스트가 비면 도출 가능하다고 판단했었는데, 생각해보니 U - C - P - C 순으로 해야더라고요... 결국 UCPC 중 몇 번째 문자열까지 가능한지 체크할 포인터 변수 하나를 두..

article thumbnail
[백준 4949번] [Kotlin] 균형잡힌 세상
코딩테스트/Kotlin 2023. 7. 10. 00:51

https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 난이도 : 실버 4 태그 : 자료구조, 문자열, 스택 설명 모든 왼쪽 괄호는 오른쪽 괄호와 맞아야 합니다. [](), [()] 등은 맞지만, ([], ([)] 등은 맞지 않습니다. 스택을 활용하기 좋은 문제일 것 같네요. [()]을 예로 들겠습니다. 첫 번째 글자 : [ stack에 문자를 넣습니다. 현재 스택 : [ 두 번째 글자 : ( stack이 비어있지 않으나, 가장 ..

article thumbnail
[백준 11328번] [Kotlin] Strfry
코딩테스트/Kotlin 2023. 7. 10. 00:26

https://www.acmicpc.net/problem/11328 11328번: Strfry C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래 www.acmicpc.net 난이도 : 브론즈 2 태그 : 구현, 문자 설명 두 개의 문자열을 입력받고, 한 문자열을 적절히 재배치하여 다른 문자열을 만들 수 있는지 판단하는 문제입니다. 즉 애너그램인지 판단하는 것이죠. https://namu.wiki/w/%EC%95%A0%EB%84%88%EA%B7%B8%EB%9E%A8 애너그램 - 나무위키 이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수..