[백준] 10814번: 나이순 정렬 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 풀이 Pair 타입의 list를 만들고 입력받은 정보를 저장한다. 그리고 그 리스트에 sortWith 함수를 이용해 나이 순으로 정렬해준다. sortWith 함수는 자신이 원하는 정렬 규칙으로 Comparator를 지정할 수 있는 것이다. 이 문제에서는 다른 객체와 나이를 비교하게 하면 된다. 코드 import java.util.* fun main() { val br = System.`in`.bufferedReader() val bw = System.out.buf..
[백준] 1149번: RGB거리 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 풀이 이 문제는 3가지 dp배열을 만들고 각각 현재 줄에서 R, G, B를 선택하는 경우를 저장해주는 것으로 해결할 수 있다. 예를 들어 N번 줄에서 R를 선택할 경우에는 N - 1번 줄에서는 G나 B를 선택해야하고 둘 중에서 더 적은 비용의 숫자를 골라 현재 줄의 R을 선택하는 비용과 합쳐준 비용을 dpR배열에 저장해준다. R G B 26 40 83 49 60 57 13 89 99 이 경우에서 dp배열들은 dpR[0] = 26, dp..
[백준] 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..