1. 문제 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 2. 풀이 백준 실버 3에 해당하는 문제이고, 문제 자체를 처음에 잘못 접근해서 시간을 많이 날린 문제다.... 처음 생각해낸 접근 방식은 주어지는 N과 M의 크기가 작아서 재귀를 통한 완전 탐색으로 문제를 해결하려 했다. 물론 이 방식으로는 해결하지 못했다... (혹시 재귀로 해결하신분이 있다면 댓글로 링크나 풀이 방식을 공유해주십쇼 꾸벅 ㅠㅠ) 두 번째 방식으로 이분 탐색에서 힌..
1. 문제 https://www.acmicpc.net/problem/17952 17952번: 과제는 끝나지 않아! 성애는 이번 학기에 전공을 정말 많이 듣는다. 이로 인해 거의 매일을 과제를 하면서 보내고 있다. 그런데도 과제가 줄어들 기미가 보이지 않는데, 바로 분단위로 과제가 추가되고 있기 때문이 www.acmicpc.net 2. 풀이 백준 실버 3의 문제이다. 첫째 줄의 입력을 제외하고 입력을 받을 때 1이 있다면 과제를 저장하는 리스트에 과제를 넣고 아니라면 1분씩 단축하는 함수를 실행한다. 함수를 실행하는 이유는 첫째 줄의 입력을 제외하고 입력을 받을 때마다 1분씩 지나기 때문에 N번을 수행하면서 한 번 수행할 때마다 받은 과제의 남은 시간을 1분씩 단축시킨다. 단축시켰을 때 남은 과제의 시간이..
1. 문제 https://www.acmicpc.net/problem/1235 1235번: 학생 번호 첫째 줄에는 학생의 수 N(2≤N≤1,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 학생의 학생 번호가 순서대로 주어진다. 모든 학생들의 학생 번호는 서로 다르지만 그 길이는 모두 같으며, 0부 www.acmicpc.net 2. 풀이 입력에서 학생의 수와 번호가 주어진다. 문제에서 뒤의 자리로 판단하기에 반복문의 인덱스를 거꾸로 돌려도 되지만, 편하게 인덱스를 가져가기 위해 학생의 번호를 입력받고 뒤집어서 배열에 넣었다. 그 후 LinkedHashSet을 선언하여 입력으로 받은 학생의 번호를 반복문으로 subString을 잘라 Set에 넣어주었다. while 반복문이 끝나기 직전 현재 Set에 들..
1. 문제 https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 2. 풀이 시뮬레이션 문제이므로 문제에서 주어지는 시나리오 대로 문제를 해결하면 된다. 문제를 처음에 보고 큐와 비슷하다고 생각했다. 그런데 처음엔 큐를 사용하지 않고 List를 사용하여서 문제를 해결하려 했는데 시간초과가 발생했다. 탐색을 여러 번 해야 하고, 불필요한 반복의 호출이 많아서 발생했다고 추측한다. 시간 초과 발생 후 다시 ..
1. 문제 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 2. 풀이 백준에서 시뮬레이션과 큐 알고리즘으로 분류되어 있는 문제이다. 처음 이 문제를 보았을 때 예제 입력을 제대로 보지 않고 우선순위 큐(PriorityQueue)를 이용하면 한번에 해결될 거 같다고 생각해서 그냥 바로 코드를 작성했다가 1 1 9 1 1 1 입력을 보고 다시 코드를 수정했다. 문제를 제대로 읽어야 한다는 것을 다시 한번 느끼게 해주었다. 이 문제는 단순히 값으로 비교..