1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 문제 풀이이 문제는 점프와 순간 이동 중에 선택해서 에너지 사용량을 최소가 되도록 하여 최솟값을 반환해야 한다. 점프를 하면 한 번에 원하는 좌표로 이동할 수 있지만 에너지 사용량이 점프한 칸 수만큼 추가되어야 한다. 순간이동은 현재 좌표에서 2배에 해당하는 좌표로 이동할 수 있는데 에너지 사용량은 변화가 없다. 처음에는 0에서 4, 0에서 3, 0에서 2, 0에서 1까지 점프한 다음, 순간이동이 가능한지 확인했다. (현재 좌표..
PS/Programmers
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 문제 풀이today, terms, privacies 를 받아서 오늘 처리해야 할 개인정보 번호를 오름차순으로 answer에 저장해야 한다. 숫자 요소가 전부 string으로 들어오기 때문에 약간 까다롭다. 그리고 날짜를 어떻게 구분해야 할지 고민했는데, 전체 날짜를 '일'로 환산해서 오늘 날짜와 비교해서 기간이 지났는지 구분했다. #include #include #include #include using namespace std..
2중 for문을 사용해서 sum을 점점 늘려가면서 n과 같은지 확인한다. 처음에는 vector에 1~n까지의 번호를 받아서 인덱스 1부터 n까지 검색해서 더하기를 했는데 굳이 vector을 사용하지 않고도 쉽게 낼 수 있는 코드로 수정했다. #include #include using namespace std; int solution(int n) { int answer = 1; for (int i=1;i
이번 문제는 DFS로 쉽게 풀 수 있는 문제이다. visited[][] 배열에 방문 여부를 기록하고, 탐색하면서 방문하지 않은 다른 네트워크를 탐색한다. DFS를 실행한 횟수가 네트워크의 수가 되므로, DFS 실행할 때마다 answer 값을 증가시켜준다. #include #include using namespace std; int visited[201]={0,}; void dfs(int x, int n, vector computers); int solution(int n, vector computers) { int answer = 0; for (int i = 0;i