1. 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 2. 접근 및 해결 2-1) 접근 Stack stk = new Stack(); int num = 1; // (앞으로) 스택에 추가할 값 (1
java
1. 문제 https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 2. 접근 및 해결 2-1) 접근 투포인터를 사용하지 않고 구현하는 방법입니다. // 입력 9 5 12 7 10 9 1 2 3 11 13 int[] numList = new int[num]; // [5, 12, 7, 10, 9, 1, 2, 3, 11] int[] list = new int[2000001]; 먼저 입력으로 들어오는 a..
1. 문제 https://www.acmicpc.net/problem/1267 1267번: 핸드폰 요금 동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 접근 및 해결 2-1) 접근 문제에서 주의할 점은 아래의 단락입니다. 영식 요금제는 30초마다 10원씩 청구된다. 이 말은 만약 29초 또는 그 보다 적은 시간 통화를 했으면 10원이 청구된다. 만약 30초부터 59초 사이로 통화를 했으면 20원이 청구된다. 민식 요금제는 60초마다 15원씩 청구된다. 이 말은 만약 59초 또는 그 보다 적은 시간 통화를 했으면 15원이 청구된다. 만약 ..
1. 문제 https://www.acmicpc.net/problem/2480 2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 www.acmicpc.net 2. 접근 및 해결 2-1) 접근 문제에는 아래와 같은 조건이 존재합니다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 처음 봤을 때 IF문을 많이 쓰면 금..
1. 문제 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 2. 접근 및 해결 2-1) 접근 알고리즘 분류가 스택인 만큼, 스택을 사용해서 해결했습니다. 그러나 스택을 꼭 사용할 필요는 없습니다! 저는 그래도 스택으로 풀이해봤습니다. 예제1의 예시를 계속 보다보면, 아래의 사진처럼 총 3개의 규칙을 찾을 수 있습니다. 빨간색 박스: 레이저의 닫는 괄호 -> 이 곳에 위치할 때마다 count 변수에 스택의 크기를 더해준다. 초록색 밑줄: 레이저가 아니고, ..