- 알고리즘/백준(6)
-
백준 1476 날짜계산 코틀린
문제 https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 풀이 저는 나머지 연산%을 통해 알고리즘을 구현하려고 하였지만 최대 범위값이 0으로 표현 되는 문제가 있어 코드가 복잡해지는 부작용이 있어 값을 하나씩 증가 하고 범위를 넘어가면 1로 초기화 해주는 방법으로 다시 풀었습니다. import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader impo..
2023.11.13 -
백준 1940 주몽, 코틀린, 투포인터
문제 https://www.acmicpc.net/problem/1940 1940번: 주몽 첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 그리고 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 그리고 마지막으로 셋째 줄에는 N개의 재료들이 가진 고 www.acmicpc.net 풀이 입력이 아래와 같을 경우를 풀어 봅시다 6 9 2 7 4 1 5 3 재료 개수 n : 6 갑옷을 만드는데 필요한 수 m : 9 갑옷 재료 번호 배열 arrNum : 2 7 4 1 5 3 갑옷 재료 2가지를 조합하여 숫자 9가 충족되는 조합은 몇가지 인지를 출력하면 됩니다. 투포인터로 쉽게 풀수 있는데요 이전에 배열 원소 값들을 오름차순 정렬 해줍니다. 그림 1과..
2023.11.10 -
백준 12891 dna비밀번호, 슬라이딩 윈도우, 코틀린
문제 https://www.acmicpc.net/problem/12891 12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net 풀이 입력값이 아래와 같다고 가정 해봅시다 4 2 GATA 1 0 0 1 임의로 만든 dna 문자열 GATA에서 사용할 부분문자열의 길이는 2입니다. 아래 그림1 처럼 GA, AT, TA 를 검사 하면 됩니다. 1001의 값은 ACGT의 충족 갯수의 값으로 부분 문자열이 충족해야할 조건은 그림2 처럼 A문자 1개 포함, T문자 1개 포함입니다. 즉, A,T가 포함되는 ..
2023.11.09 -
에라토스테네스의 체, 소수 찾는 방법
에라토스테네스의 체 란? 수학에서 에라토스테네스의 체는 소수를 찾는 방법입니다. 고대 그리스 수학자 에라토스테네스가 발견하였습니다. 알고리즘 과정 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 그림에서 회색 사각형으로 두른 수들이 여기에 해당한다. 2는 소수이므로 오른쪽에 2를 쓴다. (빨간색) 자기 자신을 제외한 2의 배수를 모두 지운다. 남아있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다. (초록색) 자기 자신을 제외한 3의 배수를 모두 지운다. 남아있는 수 가운데 5는 소수이므로 오른쪽에 5를 쓴다. (파란색) 자기 자신을 제외한 5의 배수를 모두 지운다. 남아있는 수 가운데 7은 소수이므로 오른쪽에 7을 쓴다. (노란색) 자기 자신을 제외한 7의 배수를 모두 지운다. 위의 과정을 반..
2023.11.06 -
백준 14501 퇴사 완전탐색(코틀린)
문제 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 풀이 상담 소요일을 더하고 재귀호출을 하여 반복문 index값을 다음 상담 날짜로 변경하여 줍니다. import java.io.* import kotlin.math.max var N_14501 = 0 lateinit var T: IntArray // 상담 소요 일수 lateinit var P: IntArray // 수익 var result_14501 = 0 fun main(args: Array) { // 브루트포스 (완전탐색) var br = BufferedReader(InputStreamReader(System.`in`)) v..
2023.10.17 -
백준 2309 일곱난쟁이 완전탐색(코틀린)
문제 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 풀이 브루트포스 완전탐색을 묻는 문제입니다. 키의 총합에서 임의의 2명을 뺏을때 총합이 100일때를 출력 하면됩니다. 재귀함수를 사용하여 풀어 보았습니다. var result = mutableListOf() fun main(args: Array) { var br = BufferedReader(InputStreamReader(System.`in`)) var bw = BufferedWriter(Outpu..
2023.10.17