본문 바로가기

분류 전체보기361

[BOJ]3090번: 차이를 최소로 www.acmicpc.net/problem/3090 jaimemin님의 (jaimemin.tistory.com/987)풀이를 통해 해결하였습니다. 우선 N제한이 크므로 Parametric Search로 해결해야 하는 문제임을 알 수 있습니다. 문제 풀이 방법은 다음과 같습니다. 배열 내 원소 값 차이의 상한과 하한을 구합니다. 하한(== 0), 상한(== 10^9) mid = (하한 + 상한) / 2인 mid값을 대상으로 질의를 던집니다. "배열 내 모든 원소 값의 차이가 mid 이하로 만드는 것이 T번 변경안에 가능한가?" 1. 가능 => mid 더 줄여보기 2. 불가능 => mid 늘려보기 isPossible 함수에서 양방향 탐색을 하는 이유는 오직 좌변이 우변보다 큰 경우에만 if문이 돌기 때문입니.. 2020. 9. 6.
[BOJ]14238번: 출근 기록 www.acmicpc.net/problem/14238 BaekBaekE님의 풀이(100100e.tistory.com/168)를 바탕으로 해결한 문제입니다. B 정보를 탐색하기 위해서는 이전(before) 정보를 알아야 합니다. C 정보를 탐색하기 위해서는 이전의 이전 정보까지 알아야 합니다. (before & beforeBefore) 이를 재귀함수로 구현하여 주어진 A,B,C 갯수로 0일부터 N일까지의 기록을 채워봅니다. 아무거나 맞는 순열을 하나 찾으면 되므로 최초로 true를 리턴하는 것을 정답으로 합니다. 또한, 중복 방문을 막기 위해 visited[idx][A][B][C][before][bbefore]라는 방문배열을 사용했습니다. 코드: github.com/cottory/algorithm/blob.. 2020. 9. 6.
Stack 2개로 Queue 구현하기 Stack 2개를 사용해서 Queue와 똑같이 동작하게 만드는 방식입니다. 링크: www.notion.so/STACK-2-QUEUE-daa9b129d1484f369bd9f29395727cd1 출처: https://limkydev.tistory.com/185 2020. 9. 2.
[BOJ]17836번: 공주님을 구해라! https://www.acmicpc.net/problem/17836 BFS 문제입니다. 그램을 얻은 상태, 안 얻은 상태에 탐색할 수 있는 영역이 달라지기 때문에 방문표시에서 구분을 해줘야 합니다. 그래서 방문표시 배열을 visited[2][N][M]으로 선언하고 BFS 탐색을 해주면 해결이 가능합니다. 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ17836.cc 2020. 9. 1.