본문 바로가기

전체 글556

Kotlin] 백준 1758번 풀이 https://www.acmicpc.net/problem/1758 더보기그냥.. 그냥 개간단함. 내림차순 정렬해서 인덱스 값 빼서 더하면 됨. 왜냐면, 강호가 가져갈 돈은가장 큰 값 - 가장 작은 값 을 서서히 더해가는게 가장 높은 값에 근사하기 때문임(그리드 알고리즘) 즉, 이를 식으로 풀면 fun main() { question1758()}fun question1758() { val case = readln().toInt() val tip = mutableListOf() for(i in 1 .. case) { tip.add(readln().toLong()) } var upperCase = 0L tip.sortedDescending().forEachIn.. 2024. 9. 9.
Kotlin] 백준 1676번 풀이 https://www.acmicpc.net/problem/1676  더보기이 문제.. 사실 진짜 간단한 문제임. 2에 5를 곱하면 10이 된다. 즉, 짝수는 2를 반드시 포함하기 때문에 짝수와 5를 곱하면 0이 하나 더 늘어난다.또한 약수에 2가 있으면 반드시 짝수이다. 즉, 1!을 제외한 모든 팩토리얼의 값은 짝수이다.즉, 곱하는 값에 5가 있다면 반드시 0이 늘어난다.또한 25, 125 처럼 5가 2개, 3개 있는 경우는 그 수 만큼 늘어나기 때문에, 곱해야 하는 팩토리얼 값이 5의 배수라면 그 내부에 있는 5의 갯수를 파악해야한다. 이를 코드로 풀면, import java.math.BigIntegerimport kotlin.math.logimport kotlin.math.sqrtfun main() .. 2024. 9. 9.
Kotlin] 백준 9536번 풀이 https://www.acmicpc.net/problem/9536 더보기이 문제는 혓바닥이 긴 문제입니다(ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ)핵심만 간파하면 쉬운 문제입니다. 문자열을 배열로 바꾸기, 그리고 리스트에서 값 빼기, while문 종료 트리거만 잘 할 수 있으면 쉽습니다. 녹음 파일을 그냥 배열로 바꾸고, 울음 소리 중 마지막 값만 빼 버리면 됩니다(어느 동물이 우는지 (XX goes) 는 전혀 중요하지 않습니다). 그리고 동물이 몇 종류로, 얼마나 많이 들어올 지 모르니 while문으로 돌다가 what does the fox say? 라는 문장을 마주하면 break로 무한 루프를 탈출하기만 하면 됩니다. fun main() { question9536()}fun question9536() { va.. 2024. 9. 1.
Kotlin] 백준 2238번 풀이 https://www.acmicpc.net/problem/2238 더보기(사실 자신없고,, 코드 드러움. 나은 해결책 찾는 중) 이 문제의 핵심은 1. 가장 적게 불린 가격을 찾기.2. 불린 횟수가 같다면 비교해서 가장 낮은 값 찾기.3. 낮은 값까지 찾았다면 제일 먼저 그 수를 부른 사람 찾기 이 세 가지가 핵심입니다.저같은 경우는 해시맵으로 풀었습니다. 해시 맵 두 개를 선언합니다. 하나는 , 다른 하나는 으로 만듭니다. 만약 이 가격이 불린 적이 없다면 카운트 해시에 키 : 값 쌍을 넣고, 이름 해시에도 동일하게 키 : 값 쌍을 넣습니다. 만약 해당 가격이 불린 적이 있다면 가격 : 카운트의 value 만 + 1합니다. 해시맵 세팅이 끝났다면 가격과 카운트 변수를 설정해둡니다(이 때, 가장 작은 값.. 2024. 9. 1.
반응형