[백준] 10773번: 제로 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 풀이 Stack을 이용해 풀면 된다. 0을 입력받았을 때 pop()을 호출하고 아닐 때는 push()를 호출해준다. 입력이 끝나면 stack이 비워질 때 까지 pop()을 호출하며 sum 변수에 더해준다. 코드 import java.util.* fun main() { val br = System.`in`.bufferedReader() val bw = System.out.bufferedWriter() val case = br...
[백준] 2438 ~ 2446번: 별 찍기 - 1 ~ 9 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 2440번: 별 찍기 - 3 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 www.acmicpc.net 2441번: 별 찍기 - 4 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.n..
[백준] 1012번: 유기농 배추 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 풀이 각각의 테스트 케이스마다 입력받은 graph를 DFS, BFS로 탐색한 결과를 출력해주면 된다. graph는 false로 초기화되어 있는 BooleanArray를 선언한다. 입력받은 좌표는 true로 바꿔준다. for문을 통해 graph의 좌표가 true이면 DFS, BFS 함수를 실행해주고 cnt를 +1 해준다. 이후 cnt를 출력해주면 된다. 코드 - BFS import java.util.* data class Point(val x: Int, val y: In..
[백준] 11399번: ATM - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 풀이 현재 사람이 인출하는데 필요한 시간은 앞으로 인출할 사람들이 기다려야하는 시간이다. 그러므로 총 시간은 시간이 적게 걸리는 사람이 먼저 인출할 때 최소가 된다. 입력받은 배열을 오름차순으로 정렬하는 것이 이 문제에서 사용되는 그리디 알고리즘이다. for문을 통해 현재 사용되는 시간 $\times$ 남은 사람의 수를 합한 값을 출력한다. 코드 import java.util.* fun main() { val br = System.`in`.bufferedReader() val bw = S..
[백준] 2606번: 바이러스 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 풀이 이러한 문제들의 graph는 2차원 ArrayList로 만들 수 있다. 연결되어 있는 컴퓨터 번호 쌍을 각각의 ArrayList에 추가해준다. 1번 컴퓨터와 연결되어있는 컴퓨터들을 찾는 문제로 1번 컴퓨터부터 시작하는 BFS와 DFS로 해결하는 문제이다. BFS로 해결하는 경우 Queue를 이용한다. 큐에서 꺼낸 ArrayList에 연결되어있는 번호가 방문한 적이 없다면, 그 번호로 시작하는 ArrayList를 queue에 추가해주고 cnt는 +1 해준다...