DFS
-
문제 내용https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 내용알파벳 순으로 경로 출력 위해 sort함sort한 상태로 dfs 돌며 경로 찾음경로 끝까지 갔을때(다 찾았을때)의 예외처리를 잘못해서 좀 헤맸다.. 짱ㄴㅏ.. 사실 ICN을 첨부터 push 안하고 바로 dfs 돌면서 start를 push해도 되긴하는데문제에서 고정값으로 준 ICN라 그냥 직역해서 풀었다 풀이 코드#include #include #include using namespace std;bool visit[10000+2..
[C++] 프로그래머스 lv3 여행경로 (DFS)문제 내용https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 내용알파벳 순으로 경로 출력 위해 sort함sort한 상태로 dfs 돌며 경로 찾음경로 끝까지 갔을때(다 찾았을때)의 예외처리를 잘못해서 좀 헤맸다.. 짱ㄴㅏ.. 사실 ICN을 첨부터 push 안하고 바로 dfs 돌면서 start를 push해도 되긴하는데문제에서 고정값으로 준 ICN라 그냥 직역해서 풀었다 풀이 코드#include #include #include using namespace std;bool visit[10000+2..
2025.03.03 -
문제프로그래머스 DFS/BFS - 단어 변환https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 풀이단어 변환을 위한 '최소 횟수'를 구하기 위해 bfs 사용 (최단거리와 동일한 개념으로 접근)bfs를 돌며, 현재 비교하는 대상 단어와 변환 횟수를 pair로 묶어서 반복문자열간 비교를 이렇게밖에 못하나? 고민했으나..find 함수라는 것도 서치해봤지만 오히려 더 복잡해질거라 판단. 풀이 코드#include #include #include using namespace std;int answer..
[C++] 프로그래머스 lv3 단어 변환 (BFS)문제프로그래머스 DFS/BFS - 단어 변환https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 풀이단어 변환을 위한 '최소 횟수'를 구하기 위해 bfs 사용 (최단거리와 동일한 개념으로 접근)bfs를 돌며, 현재 비교하는 대상 단어와 변환 횟수를 pair로 묶어서 반복문자열간 비교를 이렇게밖에 못하나? 고민했으나..find 함수라는 것도 서치해봤지만 오히려 더 복잡해질거라 판단. 풀이 코드#include #include #include using namespace std;int answer..
2025.03.03 -
링크 : https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net TIL 1) 풀면서 놓쳤던 점 놓쳤던건 아니고.. ㅎㅎ 뭔가 완전탐색 dfs일거같은데 영 감이 안왔다. 완전 초반 접근은 2차원 배열을 생각했다가, 굳이 필요 없을거라는 생각에 치킨집을 벡터로 뺐다. 그렇게 두니 자연스레 가정집도 분리하여 벡터로 뺐다. dfs를 구현하고, 탈출조건 전까지 가정집 벡터를 돌며, 그 루프 안에서 폐업하지 않은 치킨집을 돌며 뭔가 치킨거리..
[C++] 백준 BOJ - 치킨 배달 (15686)링크 : https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net TIL 1) 풀면서 놓쳤던 점 놓쳤던건 아니고.. ㅎㅎ 뭔가 완전탐색 dfs일거같은데 영 감이 안왔다. 완전 초반 접근은 2차원 배열을 생각했다가, 굳이 필요 없을거라는 생각에 치킨집을 벡터로 뺐다. 그렇게 두니 자연스레 가정집도 분리하여 벡터로 뺐다. dfs를 구현하고, 탈출조건 전까지 가정집 벡터를 돌며, 그 루프 안에서 폐업하지 않은 치킨집을 돌며 뭔가 치킨거리..
2023.01.23 -
링크 : https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 정답 코드 #include #include int N, M,num[10000+1]; int pNum[10000 + 1]; bool visit[10000 + 1]; void dfs(int cnt) { //cnt는 0~M-1까지. M개의 배열을 출력하기 위함 if (cnt == M) { for (int i = 0; i < M; i++) { printf("%d ", pNum[i]); } p..
[C++] 백준 BOJ - N과 M (10) (15664)링크 : https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 정답 코드 #include #include int N, M,num[10000+1]; int pNum[10000 + 1]; bool visit[10000 + 1]; void dfs(int cnt) { //cnt는 0~M-1까지. M개의 배열을 출력하기 위함 if (cnt == M) { for (int i = 0; i < M; i++) { printf("%d ", pNum[i]); } p..
2023.01.22 -
링크 : https://www.acmicpc.net/problem/2458 2458번: 키 순서 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 www.acmicpc.net 문제 설명 : 더보기 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 6번만 키를 비교하였고, 그 결과가 다음과 같다고 하자. 1번 학생의 키 < 5번 학생의 키 3번 학생의 키 < 4번 학생의 키 5번 학생의 키 < 4번 학생의 키 4번 학생의..
[C++] BOJ 백준 - 키 순서 (2458)링크 : https://www.acmicpc.net/problem/2458 2458번: 키 순서 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 www.acmicpc.net 문제 설명 : 더보기 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 6번만 키를 비교하였고, 그 결과가 다음과 같다고 하자. 1번 학생의 키 < 5번 학생의 키 3번 학생의 키 < 4번 학생의 키 5번 학생의 키 < 4번 학생의 키 4번 학생의..
2023.01.17 -
오류가 있다면 말씀해주세엽 Chap 4. 조합론 벌써 일주일이 갔군욥 화이팅! 1) 이항 계수 이항계수를 구하는 방법? for 문, 팩토리얼 재귀 (시간 worst) Combination 재귀 팩토리얼 DP Combination DP 당욘 DP가 굿 그러기에 .. - 파스칼의 삼각형 코드? //초기화 ->다 1로 초기화 combi[0][0] = combi[1][0] = combi[1][1] = 1; //파스칼 삼각형 for (int i = 2; i
[TIL] 알고리즘 : 조합론오류가 있다면 말씀해주세엽 Chap 4. 조합론 벌써 일주일이 갔군욥 화이팅! 1) 이항 계수 이항계수를 구하는 방법? for 문, 팩토리얼 재귀 (시간 worst) Combination 재귀 팩토리얼 DP Combination DP 당욘 DP가 굿 그러기에 .. - 파스칼의 삼각형 코드? //초기화 ->다 1로 초기화 combi[0][0] = combi[1][0] = combi[1][1] = 1; //파스칼 삼각형 for (int i = 2; i
2023.01.13 -
어제는 백준 푸는게 넘 오래걸리고 안풀려서 개념 정리를 못했드앙 헤헤 어제 넘 힘들엇다 ㅋㅎ 사실 알고리즘 기초 관련한거라 복잡한 내용은 아직 없지만 무튼 ~~ 이렇게라도 기록 남겨놓기 ㅎㅎ Chap 1. 알고리즘 기초 1 ) 알고리즘 ? 기초 탐색 ? 알고리즘의 시작 .. 그것은 바로 완전탐색 .. - 깊이 우선 탐색 DFS (Depth First Search) 대표적인 그래프 탐색 방법이죵~~ 일반적으로, 재귀함수를 통해 구현하곤 합니당 Stack을 이용하기도 (BFS와 대조되는 부분!) 스택을 이용한다 ? 본디 함수란 .. 스택 구조로 호출되고 작동하기 때문에 .. STACK OVERFLOW 조심! 활용 ? : 백트래킹, 단절선 찾기, 단절점 찾기, 위상정렬, 사이클 찾기 등 코드 구현할때 ? vo..
[TIL] 알고리즘 아자아자어제는 백준 푸는게 넘 오래걸리고 안풀려서 개념 정리를 못했드앙 헤헤 어제 넘 힘들엇다 ㅋㅎ 사실 알고리즘 기초 관련한거라 복잡한 내용은 아직 없지만 무튼 ~~ 이렇게라도 기록 남겨놓기 ㅎㅎ Chap 1. 알고리즘 기초 1 ) 알고리즘 ? 기초 탐색 ? 알고리즘의 시작 .. 그것은 바로 완전탐색 .. - 깊이 우선 탐색 DFS (Depth First Search) 대표적인 그래프 탐색 방법이죵~~ 일반적으로, 재귀함수를 통해 구현하곤 합니당 Stack을 이용하기도 (BFS와 대조되는 부분!) 스택을 이용한다 ? 본디 함수란 .. 스택 구조로 호출되고 작동하기 때문에 .. STACK OVERFLOW 조심! 활용 ? : 백트래킹, 단절선 찾기, 단절점 찾기, 위상정렬, 사이클 찾기 등 코드 구현할때 ? vo..
2023.01.10