728x90

백준 56

[백준/JavaScript] 수 묶기(1744)

문제https://www.acmicpc.net/problem/1744 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 상관없이 묶을 수 있다. 하지만, 같은 위치에 있는 수(자기 자신)를 묶는 것은 불가능하다. 그리고 어떤 수를 묶게 되면, 수열의 합을 구할 때 묶은 수는 서로 곱한 후에 더한다.예를 들면, 어떤 수열이 {0, 1, 2, 4, 3, 5}일 때, 그냥 이 수열의 합을 구하면 0+1+2+4+3+5 = 15이다. 하지만, 2와 3을 묶고, 4와 5를 묶게 되면, 0+1+(2*3)+(4*5) = 27이 되어 최대가 된다.수열의 모든 수는 단 한번만..

[백준/Kotlin] 경사로(14890)

문제https://www.acmicpc.net/problem/14890크기가 N×N인 지도가 있다. 지도의 각 칸에는 그 곳의 높이가 적혀져 있다.오늘은 이 지도에서 지나갈 수 있는 길이 몇 개 있는지 알아보려고 한다. 길이란 한 행 또는 한 열 전부를 나타내며, 한쪽 끝에서 다른쪽 끝까지 지나가는 것이다.다음과 같은 N=6인 경우 지도를 살펴보자.이때, 길은 총 2N개가 있으며, 아래와 같다.길을 지나갈 수 있으려면 길에 속한 모든 칸의 높이가 모두 같아야 한다. 또는, 경사로를 놓아서 지나갈 수 있는 길을 만들 수 있다. 경사로는 높이가 항상 1이며, 길이는 L이다. 또, 개수는 매우 많아 부족할 일이 없다. 경사로는 낮은 칸과 높은 칸을 연결하며, 아래와 같은 조건을 만족해야한다.경사로는 낮은 칸에..

Programming/Kotlin 2024.05.17

[백준/Kotlin] 여왕벌(10836) - 서브태스크4 해결 못함

문제https://www.acmicpc.net/problem/10836크기가 M×M인 격자 형태의 벌집이 있다. 이 벌집의 각 칸에는 여왕벌이 될 애벌레들이 한 마리씩 자라고 있다. 격자칸의 좌표계를 다음과 같이 설정한다. 제일 왼쪽 위 칸의 좌표는 (0,0)이다. 그 아래쪽 칸들의 좌표는 순서대로 (1,0), (2,0), ...등이다. 좌표가 (i,0)인 칸의 오른쪽 칸들의 좌표는 순서대로 (i, 1), (i,2), ... 등이다. 애벌레들은 매일 에너지를 모아서 정오(낮 12시) 에 한번 자라는데, 여기에 걸리는 시간은 매우 짧아서 무시할 수 있다. 첫날 아침 모든 애벌레들의 크기는 1이고, 이러한 과정을 N일 동안 반복한다. 각 애벌레가 자라서 크기가 커지는 정도는 하루에 +0, +1, +2의 세 ..

Programming/Kotlin 2024.05.17

[백준/Kotlin] 공유기 설치(2110)

문제https://www.acmicpc.net/problem/2110풀이- 최소거리가 d일 때 몇 개의 공유기를 설치할 수 있는지를 체크해서 최소거리의 최대를 찾기// 백준 - 공유기 설치(2110)import java.io.BufferedReaderimport java.io.InputStreamReaderimport java.util.StringTokenizervar house: Array = arrayOf()fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val st = StringTokenizer(br.readLine()) val N = st.nextToken().toInt() val C = st.nextToken()..

Programming/Kotlin 2024.05.15

[백준/Kotlin] 내려가기(2096)

문제https://www.acmicpc.net/problem/2096 풀이- n번째 줄에서 0번칸이면, n-1번째 줄에서는 0번, 1번 중 하나- n번째 줄에서 1번칸이면, n-1번째 줄에서는 0번, 1번, 2번 중 하나- n번째 줄에서 2번칸이면, n-1번째 줄에서는 1번, 2번 중 하나- 위를 주의해서 윗줄에서 가능한 값 중 최대값에서 현재 칸의 수를 더하는 식으로 dp 이용해서 풀어나감// 백준 - 내려가기(2096)import java.io.BufferedReaderimport java.io.InputStreamReaderimport java.util.StringTokenizerimport kotlin.math.maximport kotlin.math.minfun main() { val br = ..

Programming/Kotlin 2024.05.15

[백준/Kotlin] 자두나무(2240)

문제자두는 자두를 좋아한다. 그래서 집에 자두나무를 심어두고, 여기서 열리는 자두를 먹고는 한다. 하지만 자두는 키가 작아서 자두를 따먹지는 못하고, 자두가 떨어질 때까지 기다린 다음에 떨어지는 자두를 받아서 먹고는 한다. 자두를 잡을 때에는 자두가 허공에 있을 때 잡아야 하는데, 이는 자두가 말랑말랑하여 바닥에 떨어지면 못 먹을 정도로 뭉개지기 때문이다.매 초마다, 두 개의 나무 중 하나의 나무에서 열매가 떨어지게 된다. 만약 열매가 떨어지는 순간, 자두가 그 나무의 아래에 서 있으면 자두는 그 열매를 받아먹을 수 있다. 두 개의 나무는 그다지 멀리 떨어져 있지 않기 때문에, 자두는 하나의 나무 아래에 서 있다가 다른 나무 아래로 빠르게(1초보다 훨씬 짧은 시간에) 움직일 수 있다. 하지만 자두는 체력..

Programming/Kotlin 2024.05.14

[백준/Kotlin] 다이어트(1484)

문제https://www.acmicpc.net/problem/1484 성원이는 다이어트를 시도중이다. 성원이는 정말 정말 무겁기 때문에, 저울이 부셔졌다. 성원이의 힘겨운 다이어트 시도를 보고만 있던 엔토피아는 성원이에게 새로운 저울을 선물해 주었다. 성원이는 엔토피아가 선물해준 저울 위에 올라갔다. “안돼!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! G 킬로그램이나 더 쪘어ㅜㅠ”라고 성원이가 말했다. 여기서 말하는 G킬로그램은 성원이의 현재 몸무게의 제곱에서 성원이가 기억하고 있던 몸무게의 제곱을 뺀 것이다.성원이의 현재 몸무게로 가능한 것을 모두 출력하는 프로그램을 작성하시오. [ 입력 ]첫째 줄에 G가 주어진다. G는 100,000보다 작거나 같은 자연수이다. ..

Programming/Kotlin 2024.05.14

[백준/Kotlin] 연구소 3(17142)

https://www.acmicpc.net/problem/17142 활성화할 바이러스 K개를 뽑아서 상하좌우로 확산해나가면 됨// 백준 - 연구소 3(17142)import java.io.BufferedReaderimport java.io.InputStreamReaderimport java.util.StringTokenizerimport java.util.LinkedListimport java.util.Queueimport kotlin.math.mindata class Virus( var x: Int, var y: Int, var time: Int)val dx = arrayOf(1, -1, 0, 0)val dy = arrayOf(0, 0, 1, -1)var N = 0var K = 0var map: ..

Programming/Kotlin 2024.05.10

[백준/Kotlin] 물병(1052)

https://www.acmicpc.net/problem/1052 N을 2로 계속 나누는 과정에서 나머지 1이 나오는 경우의 수 = 최종 물이 채워져있는 물병의 개수= N을 이진수로 바꿨을 때 1의 개수// 백준 - 물병(1052)import java.io.BufferedReaderimport java.io.InputStreamReaderimport java.util.StringTokenizerfun main() { val br = BufferedReader(InputStreamReader(System.`in`)) var st = StringTokenizer(br.readLine()) var N = st.nextToken().toInt() val K = st.nextToken().toInt() ..

Programming/Kotlin 2024.05.10

[백준/Kotlin] 줄 세우기(2252)

문제https://www.acmicpc.net/problem/2252 N명의 학생들을 키 순서대로 줄을 세우려고 한다. 각 학생의 키를 직접 재서 정렬하면 간단하겠지만, 마땅한 방법이 없어서 두 학생의 키를 비교하는 방법을 사용하기로 하였다. 그나마도 모든 학생들을 다 비교해 본 것이 아니고, 일부 학생들의 키만을 비교해 보았다.일부 학생들의 키를 비교한 결과가 주어졌을 때, 줄을 세우는 프로그램을 작성하시오. [ 입력 ]첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의미이다.학생들의 번호는 1번부터 N번이다. [ 출력..

Programming/Kotlin 2024.05.09
728x90