본문 바로가기
728x90
반응형

java226

[백준/java] 21922번: 학부 연구생 민상 - BFS https://www.acmicpc.net/problem/21922 21922번: 학부 연구생 민상 첫 번째 줄에는 연구실의 크기가 세로 $N(1 \le N \le 2,000)$, 가로 $M(1 \le M \le 2,000)$ 순으로 주어진다. 두 번째 줄부터 $N + 1$ 줄까지 연구실 내부 구조 정보를 알려주는 값 $M$개가 주어진다. $1,2,3,4$ www.acmicpc.net ※ 문제 풀 때 주의 사항 (1) boolean 타입 3차원 배열(boolean[][][] visit)을 이용해서 풀어야 한다. -> boolean 3차원 배열로 풀지 않고 int 타입 2차원 배열을 새로 만들어서 지나가는 곳마다 값을 누적해서 0이 아닌 곳을 카운트 했더니 시간초과가 발생했다. (2) 방문했던 위치는 또 .. 2021. 8. 10.
[백준/java] 20055번: 컨베이어 벨트 위의 로봇 - 시뮬레이션(삼성 기출) https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 삼성 기출 문제를 풀어보았다. 우선탐색, 동적 계획법 문제들 보다는 상대적으로 쉬운 시뮬레이션 문제였다. 하지만 점점 문제의 티어가 올라가면 올라갈 수록 아 괜히 이 티어와 레벨이 아니구나 라는걸 느끼게 된다. 문제를 이해하기가 상당히 난해했다. 정리하자면, 1. 먼저 컨베이어벨트를 가동한다. 2. 로봇을 처음 위치 belt[0]에 탑승시킨다. 3. 컨베이어벨트가 이동한다. .. 2021. 8. 5.
[백준/java] 5430번: AC - 큐 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 제출만 9번한 이 문제.. 간단하게 여겼지만 생각보다 그리 간단하지는 않았던 문제였다. ★ 1 'R' 연산 시 덱을 통으로 역순 정렬 → 시간 초과 발생 처음에 'R' 연산 시 역순으로 정렬하였다. Collections.reverse((List)deq); 를 사용하여 덱을 역순으로 정렬하였었다. 그래서 처음에는 while문 안에 deq.isEmpty()를 넣어서 'D' 연산이 아니더라도 덱에 데이터가 없으면 while문을 빠져나와서 에러처리를 했었다. .. 2021. 8. 5.
[백준/java] 1021번: 회전하는 큐 - 얕은 복사, 깊은 복사 문제 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다. 지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다. 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., ak이었던 것이 a2, ..., ak와 같이 된다. 왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 a2, ..., ak, a1이 된다. 오른쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 ak, a1, ..., ak-1이 된다. 큐에 처음에 포함되어 있던 수 N이 주어진다. 그리고 지민이가 뽑아내려고 하는 원소의 위치가 주어진다. (이 위치는 가장 처음 큐에서의 위치이다.) 이때, 그.. 2021. 8. 3.
[백준/java] 11399번: ATM - 탐욕법 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분이 필요하게 된다.. 2021. 7. 31.
[백준/java] 18258번: 큐 2 문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. .. 2021. 7. 27.
728x90
반응형