Uknow's Lab.
article thumbnail
[백준 2003번] [Kotlin] 수들의 합 2
코딩테스트/Kotlin 2023. 2. 16. 22:06

https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 난이도 : 실버 4 태그 : 브루트포스, 두 포인터 설명 특정 구간이 주어지는 m과 같은 케이스를 구하는 문제입니다. 두 포인터를 사용해 풀 수 있을 것 같네요. 소스코드 import java.util.* fun main() = with(System.`in`.bufferedReader()) { val (n, m) = readLine().split(" ")...

article thumbnail
[백준 2468번] [Kotlin] 안전 영역
코딩테스트/Kotlin 2023. 1. 30. 21:35

https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 난이도 : 실버 1 태그 : 그래프 이론, 깊이 우선 탐색, 너비 우선 탐색, 브루트포스, 그래프 탐색 설명 비가 오는 양에 따라 잠기는 지역이 있을 수도 있고, 없을 수도 있습니다. 높이는 1이상 100 이하 이므로, 1~100 높이 모두를 대상으로 DFS 혹은 BFS를 진행해 안전구역의 최대 개수를 구하면 됩니다 DFS, BFS 중 어느 것을 사용해도 무방하나, 저는 BFS를 사용하여 풀이하였습니다...

article thumbnail
[백준 3595번] [C언어] 맥주 냉장고
코딩테스트/C | C++ 2022. 12. 2. 16:12

https://www.acmicpc.net/problem/3595 3595번: 맥주 냉장고 맥주를 좋아하는 창영이는 냉장고에 맥주를 보관한다. 일반 냉장고에 음식과 맥주를 함께 보관하다보니 창영이의 냉장고에는 맥주를 넣을 곳이 점점 없어지고 있었다. 창영이는 맥주 전용 냉장 www.acmicpc.net 난이도 : 브론즈 2 태그 : 수학, 브루트포스 설명 a * b * c = n을 만족하는 abc중, 겉넓이가 가장 작은 값들을 찾는 문제입니다. 뭔가 수학적으로 효율적으로 찾을 수 있지 않을까... 고민하다가 그냥 맘 편하게 브루트포스로 했습니다. 소스코드 #include int main() { int n; scanf("%d", &n); long min = 987654321; int num[3] = {0,..

article thumbnail
[백준 2057번] [Python] 팩토리얼 분해
코딩테스트/Python 2022. 11. 29. 10:36

https://www.acmicpc.net/problem/2057 2057번: 팩토리얼 분해 음 아닌 정수 N이 주어졌을 때, 이 수를 서로 다른 정수 M(M ≥ 1)개의 팩토리얼의 합으로 나타낼 수 있는지 알아내는 프로그램을 작성하시오. 예를 들어 2=0!+1!로 나타낼 수 있지만, 5는 이와 같은 www.acmicpc.net 난이도 : 실버 5 태그 : 수학, 그리디 알고리즘, 브루트포스 알고리즘 설명 정수 n이 주어졌을 때, 서로 다른 팩토리얼로 나타낼 수 있으면 YES, 아니면 NO를 출력하는 문제입니다. 정수 145이 있습니다. 145이하의 팩토리얼 중 가장 작은 팩토리얼은 5! (5*4*3*2 = 120)입니다. 4!을 볼까요? 4*3*2 = 24로, 120 + 24 = 144로, 145보다 ..

article thumbnail
[백준 3182번] [Kotlin] 한동이는 공부가 하기 싫어!
코딩테스트/Kotlin 2022. 11. 18. 14:46

https://www.acmicpc.net/problem/3182 3182번: 한동이는 공부가 하기 싫어! H-ALGO 회원인 한동이는 공부하는것을 좋아하지 않는다. 하지만 약삭빠르게도 한동이는 공부도 하지 않으면서 어려운 시험을 통과하고 싶어한다. 그러던 와중 어느 날, 한동이의 동기가 한동이에 www.acmicpc.net 난이도 : 실버 3 태그 : 그래프 이론, 그래프 탐색, 브루트포스 알고리즘 설명 이미 물어본 선배를 체크해가며 선배가 가르키는 다른 사람을 계속 따라가서, 이미 물어본 선배일 경우(사이클 발생), 지금까지 몇 명의 선배를 만났는지 저장하고, 가장 큰 수를 출력하면 됩니다. 소스코드 fun main() { val br = System.`in`.bufferedReader() val n..

article thumbnail
[백준 16173번] [Kotlin] 점프왕 쩰리 (Small)
코딩테스트/Kotlin 2022. 11. 18. 14:22

https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 난이도 : 실버 5 태그 : 구현, 그래프 이론, 브루트포스 알고리즘, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 설명 오른쪽과 아래쪽. 두 방향으로만 이동할 수 있고, 해당 칸에 있는 숫자만큼만 이동할 수 있습니다. n의 크기가 매우 작아(2 map[x][y] = st.nextToken().toInt() } } visited[0][0] = true dfs(0, 0) println("Hing")..

article thumbnail
[백준 25643번] [Python] 문자열 탑 쌓기
코딩테스트/Python 2022. 11. 18. 13:50

https://www.acmicpc.net/problem/25643 25643번: 문자열 탑 쌓기 인경이는 $N$개의 문자열을 쌓아서 문자열 탑을 완성하려고 한다. 탑을 완성하기 위해서는 모든 문자열을 아래에서부터 순서대로 쌓아 올려야 한다. 인경이는 문자열 탑의 꼭대기에 다음 순서의 www.acmicpc.net 난이도 : 브론즈 1 태그 : 문자열, 브루트포스 알고리즘 설명 붙어있는 칸이 완전히 같을때만 탑을 쌓을 수 있습니다. 두 문자열 abc, cab가 있을 때, 겹치게 놓는 방법은 총 5가지 입니다. 1. ab'c', 'c'ab abc cab 2. a'bc', 'ca'b abc cab 3. 'abc', 'cab' acb cab 4. 'ab'c, c'ab' abc cab 5. 'a'bc, ca'b'..

article thumbnail
[백준 12100번] [Kotlin] 2048 (Easy)
코딩테스트/Kotlin 2022. 11. 10. 14:46

https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 난이도 : 골드 2 태그 : 구현, 브루트포스, 백트래킹, 시뮬레이션 설명 2048의 게임을 바탕으로 한 문제입니다. 예전에 꽤 재밌게 했던 게임이고, 자바 스윙을 배울때 GUI로 직접 구현했던 게임이였는데, 이렇게 보니 반갑네요. 2048 게임을 잘 모르시는 분이라면 꼭 아래 링크에서 한 번씩 해보시기 바랍니다. https://play2048.co/ 2048 Join..

article thumbnail
[백준 1107번] [Kotlin] 리모컨
코딩테스트/Kotlin 2022. 6. 17. 00:28

https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 난이도 : 골드 5 태그 : 브루트포스 설명 이동하려는 채널(target)을 시작으로, 윗 방향(upperBtn)과 아랫 방향(lowerBtn) 채널을 하나씩 체크해 나가며 풀 수 있습니다. 둘중 하나라도 고장나지 않은 버튼들로 이동할 수 있는 채널일때 해당 값을 출력하면 됩니다. 소스코드 val br = BufferedReader(InputStreamReader(System.`i..

article thumbnail
[백준 18111] [Kotlin] 마인크래프트
코딩테스트/Kotlin 2022. 6. 13. 23:40

https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 난이도 : 실버 2 태그 : 브루트포스, 구현 설명 고르지 못한 땅을 평탄화 하는 문제입니다. 처음에는 높은 블록을 떼서 아래쪽에 넣는 방법을 생각해 봤으나... 한참의 삽질 끝에 마침내 브루트포스 문제인걸 깨달았습니다. 블록의 최소 높이부터 최대 높이까지 모든 경우의 수를 확인하여 평탄화가 된 케이스를 찾으면 됩니다. 코드 val br = BufferedReader(InputStreamRead..