본문 바로가기

알고리즘174

[C++/groom] Lv.2 : 장마 https://level.goorm.io/exam/194982/%EC%9E%A5%EB%A7%88/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io구름 레벨 2 구현문제. 범위가 n은 1000, m은 100000까지라서 아슬아슬하게 이중반복문 사용이 가능하다 ㅋㅋ단순 구현이지만 고려해야할 사항이 많아서 까다로웠다! 나의 풀이#include #include using namespace std;int main() { int n, m, tmp1, tmp2; vector ori_list; vector k_list; vector rain_in_2days; vector> rain_place; // 입력 로직 cin >> n >> m; for(i.. 2025. 4. 18.
[C++/groom] Lv.3 : 거리두기 (DP) https://level.goorm.io/exam/160279/%EA%B1%B0%EB%A6%AC%EB%91%90%EA%B8%B0/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io구름 레벨 3. DP와 경우의 수 전처리 계산값(?)을 적절히 사용해야 한다구름은 이런 유형이 많은가.. 익숙하지 않아서 더 오래걸린다 ㅠㅠ 각 상태 별 경우의 수를 찾아서 dp에 적절히 더해줘야 한다!dp[i][j] -> i번째 줄의 상태가 j(0~5)일 때의 누적 경우의 수로 해결했다. 나의 풀이#include #include using namespace std;int main() { int n=0; int mod = 100000007; int dp[10.. 2025. 4. 18.
[C++/groom] Lv.1 : 인공지능 청소기 https://level.goorm.io/exam/43068/1a-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%B2%AD%EC%86%8C%EA%B8%B0/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io구름 레벨 1 문제.오랜만에 프로그래머스 외에 다른 플랫폼으로 풀었더니, 입출력까지 구현하는게 적응이 안된다 ㅎ.ㅎ bfs인줄 알았는데 단순 수식 계산 문제였다.. (탐색에 절여진 뇌) 1. x,y 까지의 거리를 구한다2. 목표 시간과의 차이가 2의 배수일 때, 목표 칸 도착 -> 다른 칸 갔다가 -> 해당 시간에 목표 칸으로 다시 올 수 있으므로 3. (dist 나의 풀이#include using na.. 2025. 4. 18.
[C++/PGS] Lv.4 : 호텔 방 배정 (재귀) https://school.programmers.co.kr/learn/courses/30/lessons/64063 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 4. 정답률 35%재귀 사용 문제!! 1. 효율성 실패 (78.8/100)테스트케이스는 다 맞았는데, 효용성은 0점 ㅋㅋ아마도 아래 부분이 문제였을 것이다. while(rooms.find(n) != rooms.end()){ n++;} 빈 방을 찾을때까지 while문을 돌렸는데, 이 부분을 최적화해야 통과할 것 같다.다음 빈 방을 효율적으로 저장할 수 있는 방법이 뭐가 있을까고민해봐도 모르겠어서 질문 게시판에서 힌트를 얻었다.. 2025. 4. 16.
[C++/PGS] Lv.3 : 양과 늑대 (DFS) https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3.꽤나 까다로웠던 문제 👿탐색 시 조건이 있으므로, dfs 백트래킹을 적용한다.근데 백트래킹은.. 안해도 된다 (단방향 그래프이고, 방문 체크가 없음) DFS에 현재 인덱스, 양의 수, 늑대의 수, 그리고 현재 위치에서 갈 수 있는 다음 노드 목록을 전달하면연결된 다음 노드를 방문하고조건에 맞지 않으면 재귀를 중단하고 반환한다. bfs로 푸는 방법도 있던데, 그건 아래의 링크를 참고하면 될 듯하다.너비우선 탐색으로 풀 때는 .. 2025. 4. 15.
[C++/PGS] Lv.3 : 연속 펄스 부분 수열의 합 (DP) https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3.cpp 배열 선언도 까먹어버려서 .. 큰일났다 ㅋㅋ다시 다 공부해야지 이 문제는 dp로 풀어야하는데, 아이디어 떠올리기기ㅏ 조금 힘들었다펄스 배열과 연속 부분수열을 보고 sliding window로 풀어야하나? 싶었는데풀다 보니 left를 옮길 조건이 없어서 이게 아닌가보다 싶었다.그래서 DP로 최댓값을 저장하면서 풀었다! 일차원 배열을 두개 쓰려다가, 더 효율적인 코드를 위해 이차원 배열로 바꾸었다.dp[][0] -> 펄.. 2025. 4. 15.
728x90
반응형