[Java] 18115번. 카드 놓기
1. 문제 분석손에 있는 카드를 특정 행위로 내려놓고 그 카드의 결과와 행위를 알려주고 원래 카드의 순서를 추측하는 문제이다. 행할 수 있는 동작은 세가지 이다.1. 제일 위의 카드 1장을 내려놓는다.2. 위에서 두번째 카드를 바닥에 내려놓는다. 카드가 2장 이상일 때만 사용 가능.3. 제일 밑에 있는 카드를 바닥에 내려놓는다. 카드가 2장 이상일 때만 사용 가능. 동작이 끝나면 카드가 위에서부터 차례대로 1,2,3,4,5, ..., N으로 정렬된다.어떤 동작을 했는지 주어지고, 처음 카드의 순서를 계산하면 된다. 쉽게 말하면 행했던 행동들을 정반대로 하면 된다. 가장 마지막에 했던 행동부터 차례대로 원상복귀 시켜놓으면 된다. 예제를 통해서 보자. 예제)5장의 카드에 차례대로 2,3,3,2,1번 행동을 ..
2024. 6. 19.
[Java] 11003번. 최솟값 찾기
1. 문제 분석N개의 크기를 가진 정수 배열에서, L크기의 범위 안에서의 최솟값을 찾는 문제이다.이렇게 말하면 이해가 어렵기 때문에 바로 예제를 보자. 예제)크기(N)가 12인 정수 배열 [1, 5, 2, 3, 6, 2, 3, 7, 3, 5, 2, 6]일 때,범위(L)가 3인 배열에서의 최솟값이다. 인덱스가 0~2 인 값들의 최솟값,인덱스가 1~3 인 값들의 최솟값,인덱스가 2~4 인 값들의 최솟값,...인덱스가 10~12 인 값들의 최솟값을 배열로 구하면 된다. 이는 크기가 3인 배열을 이용해서 구할 수 있다. 위의 그림은 배열 [1, 5, 2, 3, 6, 2, 3, 7, 3, 5, 2, 6]에 대한 예제이다.가장 먼저 들어온 값은 가장 먼저 나간다. ❗ 중요 ❗여기서 배열에 들어온 수 들을 살고 죽는..
2024. 6. 19.