전체 글 (229) 썸네일형 리스트형 [백준][코틀린][14226] 이모티콘 https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net 문제 풀이 1. 주어진 조건에 따라 BFS 로 탐색한다. 2. 이전 탐색을 방문했는 지 확인하는 visit 배열을 2차원으로 선언하고 현재 화면의 이모티콘과 클립보드에 있는 이모티콘을 index 하여 방문 여부를 업데이트 하고 확인한다. (visit[currentEmo][clipEmo]) 3. clipEmo 와 curEmo 값이 0보다 작거나 1000을 넘어갈 경우 조건 밖의 경우이므로 제외 한다... [백준][코틀린][13549] 숨바꼭질3 https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 풀이 1. 숨바꼭질1, 4 와 같이 BFS 로 풀 경우 오류가 발생한다. 각 시간 증가가 다르기 때문에 BFS + 가중치가 있는 그래프 알고리즘 이므로 다익스트라 알고리즘을 이용해야 한다. 2. Play 라는 Data Class 를 선언하고 time 에 따라 오름 차순으로 정렬될 수 있도록 Comparable 을 상속한다. 3. 우선 순위 Queue 를 이용.. [백준][코틀린][13913] 숨바꼭질4 https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 풀이 1. https://www.acmicpc.net/problem/1697 와 동일하게 BFS 를 이용하여 푼다. 2. 출력에서 최단 시간의 지난 경로를 출력해야 한다. 3. 경로를 출력하기 위해서 방문 배열(visit) 를 이용한다. 4. 이때 방문 배열을 기존과 같은 BooleanArray 가 아닌 IntArray 로 선언한다. 5. visit 배열에 .. [백준][코틀린][1697] 숨바꼭질 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 풀이 1. N 을 시작 지점, K 를 목표 지점으로 하여 BFS 를 수행한다. 2. 이때 시작 시점과 목표 지점이 같으면 탐색을 종료 한다. 3. 큐에는 (시작 지점, 현재까지의 걸린 시간) 을 저장한다. 4. BFS 에서 (앞으로 걷는 경우, 뒤로 걷는 경우, 순간 이동 하는 경우) 에 대해서 탐색한다. 코드 import java.io.* import java.u.. [백준][코틀린][1697] 숨바꼭질 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 풀이 1. N 을 시작 지점, K 를 목표 지점으로 하여 BFS 를 수행한다. 2. 이때 시작 시점과 목표 지점이 같으면 탐색을 종료 한다. 3. 큐에는 (시작 지점, 현재까지의 걸린 시간) 을 저장한다. 4. BFS 에서 (앞으로 걷는 경우, 뒤로 걷는 경우, 순간 이동 하는 경우) 에 대해서 탐색한다. 코드 import java.io.* import java.u.. [백준][코틀린][2146] 다리 만들기 https://www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 문제 풀이 1. 주어진 입력의 각 섬을 구분하기 위해서 BFS 를 이용하여 각 섬에 번호를 부여 한다. 예시의 경우 1, 2, 3 번 섬까지 부여된다. 2. 1번에 섬의 번호가 업데이트 된 map 배열을 이용하여 BFS 를 통해서 다리 길이의 최소 값을 전체 탐색한다. 2-1. 섬인 영역을 기준으로 탐색한다. 2-2. BFS 탐색 시 영역을 벗어나거나 이미 방문했거나 기준이 되는 섬과 같은 섬 지역은 .. [백준][코틀린][16947] 서울 지하철 2호선 https://www.acmicpc.net/problem/16947 16947번: 서울 지하철 2호선 첫째 줄에 역의 개수 N(3 ≤ N ≤ 3,000)이 주어진다. 둘째 줄부터 N개의 줄에는 역과 역을 연결하는 구간의 정보가 주어진다. 같은 구간이 여러 번 주어지는 경우는 없고, 역은 1번부터 N번까지 번호 www.acmicpc.net 문제 풀이 1. 문제의 조건에서 순환선이 되는 경우를 찾고 순환선에 포함되는 역을 구한다. 2. 역과 역간의 정보를 연결 리스트로 저장한다. 3. 역 1번부터 N 번까지 DFS 로 탐색하여 순환선이 되는 경우에 대해서 포함되는 역을 찾는 탐색을 한다. 3-1. 현재 역(current), 순환 지점 역(taget), 이전 역(prev) 를 매개변수로 하여 탐색한다. 3-2.. [백준][KOTLIN][16929] Two Dots https://www.acmicpc.net/problem/16929 16929번: Two Dots 첫째 줄에 게임판의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에 게임판의 상태가 주어진다. 게임판은 모두 점으로 가득차 있고, 게임판의 상태는 점의 색을 의미한다. 점의 색은 알파벳 대문 www.acmicpc.net 문제 풀이 1. 싸이클에 대한 조건을 확인하여 DFS 를 이용한다. 2. DFS 탈출 조건은 싸이클을 만족할 때 탈출되도록 하고 아니면 전체 탐색 한다. 3. 싸이클이 되기 위해서 depth 가 4보다 크거나 같고 시작 (x, y) 와 새롭게 탐색되는 점이 같은 지 확인 한다. 코드 import java.io.* private var result = "No" fun main(args: A.. 이전 1 ··· 7 8 9 10 11 12 13 ··· 29 다음