본문 바로가기

백준52

[13460번] 구슬 탈출 2 13460번: 구슬 탈출 2 www.acmicpc.net BFS문제로 빨간 구슬과 파란 구슬이 동시에 움직인다. 이동 (방문) 체크를 위해 2차원 배열 2개가 아닌 4차원 배열을 통해서 상태를 확인해 주면 된다. visit[빨간구슬 행][빨간구슬 열][파란구슬 행][파란구슬 열] 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101/*구슬탈출2*/#include #include #include using name.. 2020. 4. 4.
[16637번] 괄호 추가하기 16637번: 괄호 추가하기 www.acmicpc.net 완전 탐색 문제로 연산자별로 우선순위가 없기 때문에 괄호를 추가한다 --> 연산자 우선순위를 정한다 라고 생각하고 풀면 된다. 풀이 방법은 1. 괄호의 개수를 선택 2. 괄호로 묶을 연산자를 선택 3. 괄호로 묶은 연산자 들에게 우선순위 부여 ( 앞에서 부터 순서대로 묶어 보기 때문에 순서에 의한 우선순위는 걱정하지 않아도 됨) 4. 정해진 연산자 우선순위를 통해 stack을 후위 표기식 계산 5. 최대값 갱신 #include #include #include #include #include using namespace std; int N, ans = INT_MIN; string input; vectoroper; int chk[10]; int cal.. 2020. 4. 4.
[2749번] 피보나치 수3 2749번: 피보나치 수 3 www.acmicpc.net 주어지는 N이 1'000'000'000'000'000'000로 매우 크다. 시간 복잡도가 O(logN)인 방법, 행렬을 통한 분할 정복으로 해결해보았다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788#include #include #include #include #define ll long long#define MOD 1'000'000#define MAXIUM 1'000'000'000'000'000.. 2020. 4. 4.
[16235번] 나무 재테크 16235번: 나무 재테크 www.acmicpc.net 시간제한이 0.3초로 꽤나 빡빡하다. 처음 접근은 3차원 벡터를 이용해서 각 위치(r,c)에 나무 정보를 저장해서 정렬을 하려고 했으나, 정렬이 반복되면 느릴꺼 같아서 정렬이 필요 없는 우선순위 큐를 사용하기로 했다. 1. 봄에 나이가 적은 순으로 양분을 흡수하기 때문에, 2차원 우선순위 큐를 이용해서 나무정보를 저장 2. 나무정보를 하나씩 뽑아서, 봄에 양분 흡수가능하면 다른 임시 우선순위 큐에 저장, 흡수가 불가능하면 죽은 나무의 나이/2를 death배열에 저장 3. 임시 우선순위 큐를 현 위치 나무정보를 가지고 있는 우선순위 큐에 복사 4. 여름에 death배열을 이용해 양분 업데이트 5. 가을에 8방 탐색을 통한 번식 6. 겨울에 양분 업데이.. 2020. 3. 1.