Uknow's Lab.
article thumbnail
[백준 2109번] [Kotlin] 순회강연
코딩테스트/Kotlin 2023. 1. 24. 00:52

https://www.acmicpc.net/problem/2109 2109번: 순회강연 한 저명한 학자에게 n(0 ≤ n ≤ 10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1 ≤ d ≤ 10,000)일 안에 와서 강연을 해 주면 p(1 ≤ p ≤ 10,000)만큼의 강연료를 지불하겠다고 알려왔다. www.acmicpc.net 난이도 : 골드 3 태그 : 자료구조, 그리디 알고리즘, 우선순위 큐, 정렬 설명 d일 안에 강의를 하러 오면 p만큼의 돈을 받을 수 있습니다. n개의 강의를 갈 수 있을 때, 최대로 벌 수 있는 돈을 구하는 문제입니다. 이 문제를 처음 봤을 때 든 생각은, 아! 일자를 오름차순 정렬하고, 돈을 내림차순 정렬하면 되겠구나! 생각했습니다. 하지만, 머지않아 몇 개..

article thumbnail
[백준 8871번] [Kotlin] Zadanie próbne 2
코딩테스트/Kotlin 2023. 1. 23. 00:56

https://www.acmicpc.net/problem/8871 8871번: Zadanie próbne 2 Twój program powinien wypisać dwie liczby oddzielone pojedynczym odstępem. Pierwsza liczba to minimalna liczba zadań jaka może pojawić się podczas n rund punktowanych i jednej rundy próbnej w trakcie SKI'10. Druga liczba to maksymalna liczba zada www.acmicpc.net 난이도 : 브론즈 5 태그 : 수학, 사칙연산 설명 한 번의 시범 라운드와, n번의 득점 라운드가 주어집니다. 각 라운드에서 2~3점..

article thumbnail
[백준 8545번] [Kotlin] Zadanie próbne
코딩테스트/Kotlin 2023. 1. 23. 00:23

https://www.acmicpc.net/problem/8545 8545번: Zadanie próbne Napisz program, który odwraca podane słowo trzyliterowe. www.acmicpc.net 난이도 : 브론즈 5 태그 : 구현, 문자열 설명 백준에 있는 모든 브론즈 문제는 전부 풀어보자. 라는 마음으로 풀었던 문제였습니다 폴란드 혹은 러시아어 같네요. 입력과 출력을 보면, 아무래도 그냥 문자열을 뒤집는 문제 같네요. 소스코드 fun main() { println(readLine()!!.reversed()) } 후기 설마 하는 마음으로 제출했는데, 맞았습니다. 외국어 문제가 더 있을까 하는 마음에, 백준의 브론즈 문제들을 검색했는데, 수도없이 많은 외국어 문제를..

article thumbnail
[백준 11650번] [Kotlin] 좌표 정렬하기
코딩테스트/Kotlin 2023. 1. 23. 00:16

https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 난이도 : 실버 5 태그 : 정렬 설명 2차원 상에 존재하는 좌표들을 x 좌표 기준으로, x 좌표가 동일하다면 y 좌표를 기준으로 정렬하는 문제입니다. 코틀린에서는 compareBy를 사용하여 다중 조건을 갖고 정렬할 수 있습니다. x, y 인자를 갖는 Data Class인 Node를 만들고, Node의 x 값, 두번째로 Node의 y 값을 기..

article thumbnail
[백준 7489번] [Kotlin] 팩토리얼
코딩테스트/Kotlin 2023. 1. 17. 21:57

https://www.acmicpc.net/problem/7489 7489번: 팩토리얼 n!은 정수 n에 대한 팩토리얼 수를 나타내는데, 이는 1부터 n까지의 모든 정수의 곱을 의미한다. 팩토리얼은 굉장히 빨리 커지기 때문에 13!는 대부분의 컴퓨터에서 32비트 정수형을, 70!은 대부분 www.acmicpc.net 난이도 : 브론즈 2 태그 : 수학, 임의 정밀도 / 큰 수 연산 설명 팩토리얼은 매우 빠른 속도로 커져 순식간에 오버플로우가 발생합니다. 그러나, 그렇다고 해서 BigDecimal을 사용하기엔 메모리와 시간을 초과할 것이 분명합니다. 자세히 보니, 0이 아닌 최우측 수를 출력하는 문제이네요. 매 연산마다 최우측 수가 0이 아닐 때 까지 10으로 나눠주면 되겠네요. 소스코드 fun main(..

article thumbnail
[백준 1343번] [Kotlin] 폴리오미노
코딩테스트/Kotlin 2023. 1. 17. 21:47

https://www.acmicpc.net/problem/1343 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 난이도 : 실버 5 태그 : 구현, 그리디 알고리즘 설명 XXXX를 AAAA를, XX를 BB로 바꾸는 그리디 알고리즘 문제입니다. replace로 AAAA를 먼저 바꾼 뒤, 그 다음 BB를 바꾸면 됩니다. 소스코드 fun main() { val line = readLine()!!.replace("XXXX", "AAAA").replace("XX", "BB") println(if (line.indexOf('X') == -1) line else -1) }

article thumbnail
[백준 26736번] [Kotlin] Wynik meczu
코딩테스트/Kotlin 2023. 1. 17. 21:43

https://www.acmicpc.net/problem/26736 26736번: Wynik meczu Drużyny Algogrodu i Bajtocji grają w wielkim finale Mistrzostw Świata w Piłce Ręcznej. Bajtosia, jako analityk sportowy, skrzętnie notuje wszystkie gole. Za każdym razem, kiedy padnie gol dla jednej z drużyn, Bajtosia zapisuje na kartce literkę A www.acmicpc.net 난이도 : 브론즈 4 태그 : 구현, 문자열 설명 이번엔 폴란드어 문제입니다. 러시아어에 정들려 했다가 이젠 폴란드어의 등장입니다. 사실 ..

article thumbnail
[백준 7785번] [Kotlin] 회사에 있는 사람
코딩테스트/Kotlin 2023. 1. 17. 00:15

https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 난이도 : 실버5 태그 : 자료구조, 해시를 통한 집합과 맵 설명 해시맵을 사용해 풀이할 수 있습니다. 맵이란, (키, 쌍)으로 된 자료구조로써, 파이썬의 경우 딕셔너리가 여기에 해당합니다. {이름 : true/false} 의 쌍을 갖고, 출입기록이 있으면 true, 퇴근기록이 있으면 false. 이후 맵의 키를 모아 내림차순 정렬을 한 후, 값이 true인..

article thumbnail
[백준 6996번] [Kotlin] 애너그램
코딩테스트/Kotlin 2023. 1. 16. 22:55

https://www.acmicpc.net/problem/6996 6996번: 애너그램 첫째 줄에 테스트 케이스의 개수(

article thumbnail
[백준 10699번] [Kotlin] 오늘 날짜
코딩테스트/Kotlin 2023. 1. 16. 22:40

https://www.acmicpc.net/problem/10699 10699번: 오늘 날짜 서울의 오늘 날짜를 출력하는 프로그램을 작성하시오. www.acmicpc.net 난이도 : 브론즈 5 태그 : 구현 설명 오늘의 날짜를 출력하는 문제입니다. 자바와 코틀린에서는 SimpleDateFormat을 사용해 시간을 쉽게 처리할 수 있습니다. 소스코드 import java.text.SimpleDateFormat import java.util.Calendar fun main() { print(SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().timeInMillis)) } yyyy는 년도 MM은 월 (mm은 분을 의미) dd는 일을 의미합니다.