[백준 18428] 감시 피하기 (C++)
https://www.acmicpc.net/problem/18428문제NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복도로 빠져나온 학생들은 선생님의 감시에 들키지 않는 것이 목표이다.각 선생님들은 자신의 위치에서 상, 하, 좌, 우 4가지 방향으로 감시를 진행한다. 단, 복도에 장애물이 위치한 경우, 선생님은 장애물 뒤편에 숨어 있는 학생들은 볼 수 없다. 또한 선생님은 상, 하, 좌, 우 4가지 방향에 대하여, 아무리 멀리 있더라도 장애물로 막히기 전까지의 학생들은 모두 볼 수 있다고 가정하자.다음과 같이 3x3 크기의 복도의 정보가 주어진 상황을 확인해..
2024. 12. 20.
[백준 14246] K보다 큰 구간 (C++)
https://www.acmicpc.net/problem/14246문제 n개의 자연수로 이루어진 수열이 주어질 때, 특정 구간 [i,j] (i≤j)의 합이 k보다 큰 모든 쌍 (i,j)의 개수를 출력하시오.입력첫째 줄에는 자연수의 개수 n이 주어진다. (1 ≤ n ≤ 100000)다음 줄에는 자연수 n개가 주어진다. 자연수는 100,000보다 크지 않다.그 다음 줄에는 자연수 k가 주어진다. (1 ≤ k ≤ 1,000,000,000) 출력특정 구간 [i,j]의 합이 k보다 큰 모든 쌍 (i,j)의 개수를 출력하시오. 문제 풀이투 포인터 문제. 주어진 수가 모두 자연수이므로 [i, j]가 k보다 크다면 j보다 큰 모든 수 l에 대해 [i, l]이 k보다 크다. 이를 이용하여 투포인터를 사용하여 i(=투포인..
2024. 12. 19.