알고리즘 2

[백준 - JAVA] 2493번 : 탑

https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 처음에는 단순히 값 비교를 하나하나 하는 방식을 생각했는데 최악의 경우 500000^2 회 비교를 해야하기 때문에 시간초과가 날 것 같았다. 매번 전부를 계산하는 것은 안되고 진행 과정 중간에 쳐낼 수 있는 것은 쳐내야 했는데 스택에 쌓으면서 전에 있던 숫자보다 크다면 더 이상 스택에 쌓아놓을 필요가 없다는 것을 알았다. 새로운 숫자가 들어올 때 본인보다 작으면 버리고 본인보다 크면 위에 쌓는 ..

[백준 - JAVA] 18115번 : 카드 놓기

https://www.acmicpc.net/problem/18115 18115번: 카드 놓기 수현이는 카드 기술을 연습하고 있다. 수현이의 손에 들린 카드를 하나씩 내려놓아 바닥에 쌓으려고 한다. 수현이가 쓸 수 있는 기술은 다음 3가지다. 제일 위의 카드 1장을 바닥에 내려놓는다. www.acmicpc.net 취업 스터디 덕분에 알고리즘을 다시 블로그에 올리게 됐습니다. 취업 스터디 감사합니다. 어떤 3가지 작업을 실행했더니 1 ~ N 으로 정렬이 되었다! 그럼 반대로 돌려봐라! 아래에서부터 N->1 로 쌓여 있었기 때문에 1부터 N까지 순서대로 반대 작업을 수행하면 된다. 1번의 반대 작업은 첫번째 순서에 넣으면 된다. 2번의 반대 작업은 두번째 순서에 넣으면 된다. 3번의 반대 작업은 마지막 순서에..