본문 바로가기

분류 전체보기556

Kotlin] 백준 9012번 문제풀이 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 더보기 이 문제는 스택을 이용하면 간단하다. (는 무조건 스택에 넣고, )가 왔을 때 괄호가 만들어질거 같으면 빼면 되고.. (가 없을때 ) 가 오면 잘못됐고, 괄호를 다 완성 시킨거 같은데 스택에 (이 남아 있으면 잘못됐다고 하면 된다. 이를 코드로 만들면 import java.util.Stack fun main(args: Array) { question9012(.. 2024. 4. 3.
Kotlin] 백준 13909번 문제풀이 https://www.acmicpc.net/problem/13909 13909번: 창문 닫기 서강대학교 컴퓨터공학과 실습실 R912호에는 현재 N개의 창문이 있고 또 N명의 사람이 있다. 1번째 사람은 1의 배수 번째 창문을 열려 있으면 닫고 닫혀 있으면 연다. 2번째 사람은 2의 배수 번째 www.acmicpc.net 더보기 이 문제는 의외로 되게 단순한데, 예를 들어 1번 창문이면, 1번이 열음 2번 창문이면, 1번이 열음, 2번이 닫음 8번 창문이면, 1번이 열음 / 2번이 닫음 / 4번이 열음 / 8번이 닫음. 9번 창문이면, 1번이 열음 / 3번이 닫음 / 9번이 열음 여기까지 봤다면 규칙성이 보인다. 창문이 열리려면 반드시 홀수가 되어야 하고, 홀수가 되려면 특정 값의 제곱이 되어야한다. 그 .. 2024. 4. 1.
Java, Kotlin] 에라토스테네스의 체 에라토스테네스의 체는 소수를 구하는 아주 기본적인 알고리즘이다. 알고리즘은 다음과 같다 1. 내가 원하는 수 만큼의 숫자를 깔아놓는다. 2. 0과 1은 소수가 아니므로 뺀다. 3. 2는 소수이고, 2의 배수부터는 소수가 아니므로 2를 제외한 2의 배수는 모두 빼버린다. 4. 3은 소수이고, 3의 배수부터는 소수가 아니므로 3을 제외한 3의 배수는 모두 빼버린다. 4. 4는 소수가 아니므로 넘어간다. 5. 5는 소수이므로 5의 배수부터는 ... 이걸 반복한다. 근데 가만히 생각해보자? 2의 소수라서 2*2 -> 2*3 -> 2*4를 뺐다. 3의 소수에서 3*2 .. 는 2의 배수에서 2*3으로 빼버렸지 않나. 그러므로 3*3부터, 즉 3^2부터 시작해도 된다. 5도 마찬가지로 5*2는 2의 배수에서, 5*.. 2024. 4. 1.
Kotlin] 백준 2485번 문제풀이 https://www.acmicpc.net/problem/2485 2485번: 가로수 첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가 www.acmicpc.net 더보기 이 문제는 최대공약수를 알아야한다. 왜 최대공약수를 알아야하냐고..? 자, 우리는 가능한 큰 간격으로 나무를 세워야 한다. 제시된 예시를 보자. 4 1 3 7 13 해당 예시를 보면, 1 3 7 13.. 사이의 간격은 2 4 6이다. 제일 이상적인 방식은 무엇인가? 2개 간격으로 나무를 심는 것이다. 1개 간격으로 나무를 심으면 나무를 너무 심어버리게 되고, 2를 넘으면 1~3 사이.. 2024. 3. 26.
반응형