본문 바로가기
반응형

[백준]214

[BaekJoon/백준 21609번 상어 중학교 꽤 오랜 시간이 걸렸다. 내 풀이는 조금 복잡한데, 키포인트는 두개였다. 1. 그룹 내에서는 일반 블록이 적어도 하나 존재하므로, 2중 for문을 돌면서 일반 블록을 만날 때 마다 해당 위치를 임시 기준블록으로 취한 뒤 dfs를 진행한다. 그리고 여기서 그룹을 만들어나가는데, 이 dfs 과정에서 기준블록도 업데이트가 필요하면 업데이트한다. -> 그룹 내에서 기준블록은 행과 열이 가장 작은 일반블록이어야 하므로 2. 그룹을 만들어나갈 때 마다, 그룹의 정보들을 벡터에 저장한다. 그리고 이를 소팅하여 '가장 큰 그룹'을 뽑아낸다. #include #include #include #include #include using namespace std; int MAP[20][20]; bool VISIT[20][20.. 2022. 10. 13.
[BaekJoon/백준] 17144번 미세먼지 안녕! 이 문제를 풀면서 느낀건, 구현문제는 확실히 print() 함수를 만들어 놓으면 편하다는 점이었다. 그리고 하나하나 코딩하면서, 찍어보면서 점점 완성시켜야지 확인 안하고 마지막에 다 확인하면 문제점이 언제 어디서 발생했는지 찾기 더 어려워지는 것 같다. 이동 방향에 대한 값을 갖고 있는 MOVE 배열을 만들어 주는 점이 중요했다. 그리고, memmove는 정말 자주 쓰이니까 다시 한번 외워두자! memmove(dst, src, sizeof(src)) #include #include #include using namespace std; int MAP[50][50]; int MOVE[50][50]; int mx[5] = {0, 0, -1, 0, 1}; int my[5] = {0, 1, 0, -1, 0}; v.. 2022. 10. 10.
[BaekJoon/백준] 23288번 주사위 굴리기 2 주사위굴리기 문제를 풀어봤다면, 비교적 쉽게 풀 수 있는 문제였다. 이 문제의 유형은 주사위 전개도로 확실히 정해져 있기에, 추가 유형에 대한 문제가 나오긴 어렵겠지만 전개도에 관련한 문제를 어떻게 풀면 좋을까에 대한 답으로, 이렇게 쉽게 1차원적 배열로 나열하여 규칙성에 대해서만 캐치하면 된다는 생각을 배워간다고 보면 된다. 전개도를 직접 그려보면 생각에 엄청난 도움이 된다 숫자의 규칙이 어떻게 변하는지를 보고, 함수를 구현하면 된다. #include #include #include using namespace std; int N, M, K; int MAP[20][20]; bool VISIT[20][20]; int mx[4] = {0, 1, 0, -1}; int my[4] = {1, 0, -1, 0};.. 2022. 10. 10.
[BaekJoon/백준] 20058번 마법사 상어와 파이어스톰 이 문제를 풀며 느낀점 세가지 1. 배열 회전 한번 더 보기 2. SCC 관련 문제들도 한번 더 보기(삼성기출 특히) 3. 나중에 바꿀생각하지말고, 첨부터 뭘 어떻게 지칭할 것인지 명확히 약속 정의하고 코딩 시작해야 함의 중요성.. 3번의 경우엔,, 한 변의 길이를 정의하는 변수를 m으로 할지, 2^m으로 할지 명확히 하지 않은 점에서 비롯되어 문제가 생겼었다. 그리고 처음 제출할 때 시간초과가 떴었는데,, 이유는 pow함수의 반복적인 호출이 오버헤드로 누적된 것이었다. pow 함수의 오버헤드가 시간초과의 원인이었다. 그래서 변수를 따로 선언해준 뒤에, 한번만 pow값을 구한뒤 재사용했따. #include #include #include #include using namespace std; int N, .. 2022. 10. 9.
반응형