[BOJ/Greedy] 백준 1700 - 멀티탭 스케줄링 (Java)
·
✏️/BOJ
백준 1700 - 멀티탭 스케줄링https://www.acmicpc.net/problem/1700문제ex. 3구 멀티탭 사용 순서키보드 -> 헤어드라이기 -> 핸드폰 충전기 -> 디지털 카메라 충전기 -> 키보드 -> 헤어드라이기=> 키보드, 헤어드라이기, 핸드폰 충전기의 플러그를 순서대로 멀티탭에 꽂은 다음 디지털 카메라 충전기 플러그를 꽂기 전 핸드폰 충전기 플러그를 빼는 것이 최적 -> 1번만 빼면 됨입력첫 줄: 멀티탭 구멍의 개수 N (1 두 번째 줄: 전기용품의 이름 출력: 하나씩 플러그를 빼는 최소의 횟수풀이가장 나중에 다시 사용되거나 아예 안 쓰이는 것 제거`Set set = new HashSet`: 현재 멀티탭에 꽂혀 있는 전기용품들`cnt`: 플러그를 뽑은 횟수 (정답) `int cur ..
[BOJ] 백준 1516 - 게임 개발 (Java)
·
✏️/BOJ
1516 - 게임 개발https://www.acmicpc.net/problem/1516문제게임 플레이에 들어가는 시간은 상황에 따라 다를 수 있기 때문에, 모든 건물을 짓는데 최소 시간 이용어떤 건물을 짓기 위해 다른 건물을 먼저 지어야 할 수 있음ex. 스타크래프트: 벙커 짓기 위해서는 배럭을 먼저 지어야 함여러 개의 건물 동시에 지을 수 있음자원 무한히 많이 가지고 있고, 건물을 짓는 명령을 내리기까지는 시간이 걸리지 않음입력첫째 줄: 건물의 종류 수 N (1 다음 N개 줄: 각 건물을 짓는데 걸리는 시간, 건물을 짓기 위해 먼저 지어야 하는 건물들의 번호(건물의 번호 1 ~ N, 각 줄은 -1로 끝남/ 건물을 짓는데 걸리는 시간 출력: N개의 각 건물이 완성되기까지 걸리는 최소 시간풀이`graph[..
[BOJ] 백준 6549 - 히스토그램에서 가장 큰 직사각형 (Java)
·
✏️/BOJ
6549 - 히스토그램에서 가장 큰 직사각형https://www.acmicpc.net/problem/6549문제히스토그램: 직사각형 여러 개가 아래쪽으로 정렬되어 있는 도형각 직사각형은 같은 너비를 가지고 있지만, 높이는 서로 다를 수 있음입력각 테스트 케이스는 한 줄로 이뤄져 있고, 직사각형 수 n이 가장 처음으로 주어짐 (1 히스토그램에 있는 직사각형의 높이인 n개의 정수 h_1, ..., h_n (0 (왼쪽부터 오른쪽 순서대로)모든 직사각형 너비 1, 입력 마지막 줄 0)출력: 각 테스트 케이스에 대해서, 히스토그램에서 가장 넓이가 큰 직사각형의 넓이 출력풀이`stack`: 인덱스 저장하는 스택높이가 증가하는 순서로 인덱스 유지`max`: 최대 직사각형 넓이 오른쪽으로 이동하며 스택 처리`heigh..
[BOJ/Simulation] 백준 14499 - 주사위 굴리기 (Java)
·
✏️/BOJ
14499 - 주사위 굴리기https://www.acmicpc.net/problem/14499문제크기 NxM인 지도/ 오른쪽은 동쪽, 위쪽은 북쪽지도의 좌표 (r, c) -> r: 북쪽으로부터 떨어진 칸의 개수, c: 서쪽으로부터 떨어진 칸의 개수주사위는 지도 위에 윗 면이 1, 동쪽을 바라보는 방향이 3인 상태/ 놓여져 있는 곳 좌표 (x, y)/ 가장 처음에는 모든 면 0지도 각 칸에 정수 하나씩 쓰여 있음주사위 굴렸을 때, 이동한 칸에 쓰여 있는 수 0 -> 주사위 바닥면에 쓰여 있는 수가 칸에 복사/ 0이 아닌 경우 -> 칸에 쓰여 있는 수 -> 주사위 바닥면으로 복사, 칸에 쓰여 있는 수 0이 됨입력첫째 줄: 지도 세로 크기 N, 가로 크기 M (1 , 주사위 놓은 곳 좌표 x, y (0 둘째 ..
[BOJ/Simulation] 백준 14891 - 톱니바퀴 (Java)
·
✏️/BOJ
백준 14891 - 톱니바퀴https://www.acmicpc.net/problem/14891문제총 8개 톱니 가지고 있는 톱니바퀴 4개/ N극 or S극 중 하나 가지고 있음총 K번 회전시키는데 서로 맞닿은 톱니 극이 다르면 반대방향으로 회전입력첫째 줄: 1번 톱니바퀴 상태둘째 줄: 2번 톱니바퀴 상태셋째 줄: 3번 톱니바퀴 상태넷째 줄: 4번 톱니바퀴 상태(8개의 정수로 12시 방향부터 시계방향 순서대로 주어짐/ N : 0, S : 1)다섯째 줄: 회전 횟수 K (1 다음 K개 줄: 회전시킨 방법 순서대로 주어짐 (첫 번째: 회전시킨 톱니바퀴 번호, 두 번째: 방향/ 1 : 시계, -1 : 반시계)출력: 총 K번 회전시킨 이후에 네 톱니바퀴의 점수 합1번 톱니바퀴의 12시 방향이 N -> 0점 / S..
[BOJ/Graph] 백준 1043 - 거짓말 (Java)
·
✏️/BOJ
백준 1043 - 거짓말https://www.acmicpc.net/problem/1043문제파티에서 이야기를 말할 때, 있는 그대로 말하거나 과장해서 말함거짓말쟁이로 알려지기 싫기 때문에 진실을 아는 사람이 파티에 오면 진실을 이야기 함어떤 사람이 파티에서 진실을 듣고, 또 다른 파티에서 과장된 이야기를 들으면 거짓말쟁이로 알려짐입력첫째 줄: 사람 수 N, 파티 수 M (1 둘째 줄: 이야기의 진실 아는 사람 수와 번호 (0 (진실을 아는 사람 수 먼저 주어지고 그 개수만큼 사람들 번호(1 ~ N) 주어짐)셋째 줄 ~ M개 줄: 각 파티마다 오는 사람 수, 번호 (1 출력: 거짓말쟁이로 알려지지 않으면서 과장된 이야기를 할 수 있는 파티 개수의 최댓값풀이Union-Find (같은 파티 참석 -> 같은 그..
kimmeoww
빙글빙글 돌아가는 Debug 하루