DFS
-
링크 : 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