본문 바로가기

pair2

[BOJ] 2493번 - 탑 자기 자신보다 왼쪽에 있으며 가장 가깝고 높이가 높은 탑의 인덱스값을 출력하는 문제이다. 스택을 활용하여 오른쪽에서 왼쪽으로 높이를 비교하여 답을 찾는 방식을 사용하였다. 처음에는 2중for문으로 그냥 돌려버렸더니 답은 나왔지만 시간 초과가 걸려버렸다. 해당 2중 for문에 대한 코드만 while문을 사용하여 시간제한을 해결하였다. 스택에는 가장 우측부터 탑의 높이와 인덱스를 저장한다. 자기자신보다 높은 탑을 만나면 res배열에 답을 저장하고 처음 res배열은 전역변수로 0으로 초기화 하였기 때문에 자기자신보다 높은 탑을 만나지 못한 경우는 자동적으로 답이 0으로 출력된다. #include #include using namespace std; int N, num; int flag = 1; int ans;.. 2022. 6. 14.
[BOJ] 18870번 - 좌표 압축 주어진 값에 대하여 중복을 허용하여 순서를 매기는 문제이다. 간단하게 sort(), vector와 pair 클래스를 이용하여 해결했다. -- pair pair구조체를 sort할 경우 first를 기준으로 오름차순을 진행하고 second값은 first값을 따라간다. 입력값 tmp vector tmp.first tmp.second 2 0 4 1 -10 2 4 3 -9 4 정렬된 tmp vector tmp.first tmp.second -10 2 -9 4 2 0 4 1 4 3 tmp vector의 num값 중복을 고려한 res vector 입력 res.first res.second 2 0 4 1 0 2 1 3 3 3 정렬된 res vector res.first res.second 0 2 1 3 2 0 3 3 .. 2022. 6. 13.