본문 바로가기
반응형

코딩/문제풀이-백준35

백준 13549번 - 숨바꼭질 3 (C++) 해결 방법BFS를 사용해 풀이.다만 최적화를 진행해주지 않으면 1회전당 3배수씩 큐의 크기가 어마무시하게 늘어나기 때문에 매 위치마다의 최고기록을 저장해두고, 해당 기록보다 더 큰 시간이 들어오면 더이상 진행하지 못하는 식의 약간의 최적화를 추가하였다. (안하면 큐가 너무 커져서 메모리 초과남)아쉬웠던 점골드 5를 보고 너무 날먹하려는 생각에 최적화를 하나도 진행하지 않고 했다가 메모리 초과를 너무 많이 봤다...사실 문제를 맞추는것보단 결국 더 높은 레벨 풀기 위해서는 효율적으로 푸는게 중요한데 스스로 반성합니다....코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include io.. 2025. 1. 15.
백준 1753번 - 최단경로 (C++) 해결 방법다익스트라 문제.시작 간선부터 시작해서, 내가 갈 수 있는 모든 지점의 최단거리를 기록해두고우선순위 큐를 사용하여 그중 가장 낮은 지점부터 다시 모든 지점의 최단거리 기록을 반복한다.+번외로 처음 입력받을 때, 출발지 목적지가 같은 가중치만 다른 간선이 여러개가 입력될 수 있어 최적화를 위해 이건 가장 짧은 간선 하나만 받아올 수 있도록 했다.아쉬웠던 점우선순위 큐의 존재를 모르고 일반 큐로 최소값 찾고 하면서 했다가 시간초과 나서 우선순위 큐는 검색을 통해 알게 되었다. 번외로, 기본적으로 우선순위 큐의 정렬은 오름차순인데 이걸 내림차순으로 변경하기 위해 자료형을 지정해주는게 참 괴상하게 생긴듯.코드12345678910111213141516171819202122232425262728293031.. 2025. 1. 9.
백준 1149번 - RGB거리 (C++) 해결 방법DP문제.n*3 크기의 dp에 현재 수와, 그 이전까지 의 합(dp)를 더해서 최대값을 찾아 저장한다.이후 가장 마지막 줄의 3칸중 가장 낮은 값이 정답.코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include iostream>using namespace std; int dp[3][1001];int rgb[3][1001]; int GetMin(int a, int b){    if(a==0)        return b;    if(b==0)        return a;        return a > b ? b : a;} int.. 2025. 1. 8.
백준 1987번 - 알파벳 (C++) 해결 방법누가봐도 DFS 문제라 DFS 돌림.처음엔 string "ASCR" 이런식으로 밟은 알파벳 저장하고 find로 밟았는지 찾다가, 시간초과 나와서 밟았는지 체크용 전역 배열UsingAlphabet[26] 선언. 배열 인덱스는 A~Z다.아쉬웠던 점없음코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455#include iostream>#include string>using namespace std; char board[20][20]; pairint,int> location[4] = {{0,1},{1,0},{0,-1},{-1,0}};int returnCount = 0;bo.. 2024. 10. 28.
반응형