목록분류 전체보기 (156)
DOTY
https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 �� programmers.co.kr ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ #include #include using namespace std; vector solution(int brown, int yellow) { int col, row; for(int i = 1; i

처음으로 풀어본 골드4(sloved.ac)문제. 기분이 좋다 ㅎㅎㅎㅎㅎ 느낌상 이건 BFS로 풀어야 할 것 같았다. https://www.acmicpc.net/problem/6087 6087번: 레이저 통신 크기가 1×1인 정사각형으로 나누어진 W×H 크기의 지도가 있다. 지도의 각 칸은 빈 칸이거나 벽이며, 두 칸은 'C'로 표시되어 있는 칸이다. 'C'로 표시되어 있는 두 칸을 레이저로 통신하기 위해서 www.acmicpc.net #include #include #include using namespace std; char map[101][101]; bool check[101][101] = {0, }; int N, H; int cnt = 0; void bfs(int x, int y) { queue q..

이번에는 BFS에 대해서 공부하기 위해 뱀과 사다리 게임을 풀어봤다. (Solved.ac기준 실버 3) 처음에는 어떤 방식으로 풀어야 할지 역시 막막했음 ㅠ 그런데 숨바꼭질(1697)을 풀어보니 대충 어떤 느낌인지 감 잡을 수 있었다. 간단 요약을 하자면 큐에 넣고 큐 사이즈만큼 for문 돌리고!!!! 큐에서 빼고!!!! 계속 큐에 넣고!!!!! https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net #i..
DFS를 공부했으니 DFS를 써보고 싶었다. 근데 역시나 여러운것......ㅎㅎ.... 그냥 일단 해보자는 식으로 했다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 보통 예제 입출력을 보고 종이에다 끄적여보는데 정말 .....ㅜㅜㅜㅜㅜㅜ 그동안 너무 대충 공부한거 같았다 ㅜㅜ (반성......) 일단 첫번째 코드는 다음과 같다. (15649번) #include #define MAX 9 using namespace std; int n,m; int arr[MAX] = {0,}; bool visited[MAX] = {0,}; void dfs(int cnt) { if(cnt == m) { for(int i = 0; i < m; i++) cout m; dfs(0); } 1부..

이건 BFS 와는 다르게 깊이 우선 탐색이다. BFS라면 1, 2, 3.... 순이겠지만, DFS는 1, 2, 4..... 순이다. 코드는 다음과 같다. void dfs(int num) { if(check[num]) return; check[num] = true; cout

BFS는 너비 우선 탐색이다. 이걸 위해서 직접 만들었다. 역시 대단해 ㅎㅎㅎㅎㅎㅎ 본론으로 BFS는 너비 탐색으로 말 그대로 넓게 퍼져가면서 탐색한다 생각하면 된다. 과정은 간단하다. 큐(Queue)에 하나하나 넣어서 대기 시키는 느낌이랄까... 코드는 다음과 같다. void bfs(int num) { queue q; q.push(num); check[num] = true; int x, y; while(!q.empty()) { x = q.front(); q.pop(); cout