https://www.acmicpc.net/problem/6549 6549번: 히스토그램에서 가장 큰 직사각형입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤www.acmicpc.netstack 문제이다. 지금까지 추가된 상자가 언제부터 이어져왓는지 기록해야한다.만약 추가되는 상자가 이전 상자보다 작다면 현재 상자와 이전 큰 상자의 차이는 필요가 없어짐으로 이전 상자가 얼마나 큰지 계산해서 가장 큰 상자인지 max로 비교해 검증해준다. 현재 상자는 큰 상자와 같이 이어짐으로 현재상자가 큰 상자가 추가됐을때 추가된것처럼 기록한다..
https://www.acmicpc.net/problem/3015 3015번: 오아시스 재결합첫째 줄에 줄에서 기다리고 있는 사람의 수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에는 각 사람의 키가 나노미터 단위로 주어진다. 모든 사람의 키는 231 나노미터 보다 작다. 사람www.acmicpc.netstack 문제이다. 사람들은 왼쪽에 보는 사람만봐서 중복을 없에고 왼쪽 사람들을 stack으로 관리한다.시간복잡도를 줄이는 것이 중요한테 왼쪽 사람들의 키가 겹칠경우 배열 한칸을 차지하지 않고 같은 키의 사람의 수가 몇인지 기록해야 한다.[9,3]이렇게 stack에 저장된다(stack은 2차원 배열) index 0은 사람의 키 index 1은 몇명이 이키인지 나타내는 것이다.s..
https://www.acmicpc.net/problem/17298 17298번: 오큰수첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.www.acmicpc.netstack 문제이다. 오른쪽의 수를 stack에 저장하는 방식으로 나아가야한다.출력할 값은 N개 만큼의 0을 가지고있는 output배열에 기록한다.주어진 수열의 오른쪽 부터 시작해서 전체를 반복한다.stack에 현제값이랑 비교해서 작거나 같은 값이 있으면 pop하고 아닐경우 현제 값을 stack에 넣어준다.이떄 stack에 현제값이랑 비교해서 작은 값이 없다면 -1을 output에 기록하고 아닐경우 output에..
https://www.acmicpc.net/problem/2493 2493번: 탑첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1www.acmicpc.netstack을 사용하는 문제이다.stack에 현재 타워에서 보이는 왼쪽 빌딩들을 저장해 나가면서 풀어나가면 된다.stack에는 타워의 높이와 타워의 위치를 저장한다.처음 stack에는 0번째 타워의 크기와 위치를 저장해둔다. 첫타워는 왼쪽에 타워가 없어 무조건 0이 출력되니 output에도 0을 넣어둔다.1 부터 N까지 for문을 돌려서 모든 타워를 계산한다.stack이 빌때까지 혹은 break를 당할..
https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을www.acmicpc.net깊이 우선 탐색 문제이다. n번돌리면서 1번친구가 속할 곳이있는지...n번친구가 속할 곳이있는지 다 계산하면 시간 초과가 난다. 따라서 일반적인 dfs로 하면 안되고 한번이라도 팀계산에 참여했으면 방문했다고 기록해야한다.문제의 주어진 값들을 다 받는다. 방문을 했는지 기록할 visit배열을 만들어 준다.n만큼 반복하면서 만약 n이 방문한 곳이 아니라면 n을 방문했다고 표시하고 n이 선택한 사람을 dfs인자로..
https://www.acmicpc.net/problem/6593 6593번: 상범 빌딩당신은 상범 빌딩에 갇히고 말았다. 여기서 탈출하는 가장 빠른 길은 무엇일까? 상범 빌딩은 각 변의 길이가 1인 정육면체(단위 정육면체)로 이루어져있다. 각 정육면체는 금으로 이루어져 있어www.acmicpc.net너비 우선 탐색 문제이다. 값을 받을때 중간에 빈칸이 들어간다는걸 계산안해서 index에러가 계속 나왔다 조심이것만 조심하면 문제는 매우 간단하다.빌딩의 공간의 정보를 표시할 3차원 배열을 만들어서 관리한다.6가지 방향으로 움직일 수 있도록move = [[1,0,0],[-1,0,0],[0,1,0],[0,-1,0],[0,0,-1],[0,0,1]] 배열을 만든다bfs를 몇번 실행했는지 기록할 minutes를 만..