본문 바로가기

Algorithm/C++149

[백준 7569] 토마토 7569번: 토마토 (acmicpc.net) 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 배운것 queue Q; 정답 풀이 #include using namespace std; int dx[6] = {0, 0, 1, -1, 0, 0}; int dy[6] = {1, -1, 0, 0, 0, 0}; int dz[6] = {0, 0, 0, 0, 1, -1}; int board[103][103][103]; int dist[103][103][103]; queue Q; int m, n, h; i.. 2022. 8. 30.
[백준 10026] 적록색약 10026번: 적록색약 (acmicpc.net) 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 내 코드 #include using namespace std; char board[101][101]; bool vis[101][101]; int n; int dx[4] = { 1,0,-1,0 }; int dy[4] = { 0,1,0,-1 }; void bfs(int i, int j) { queue q; q.push({i,j}); vis[i][j]=1; while(!q.empty()) { int x=q.fron.. 2022. 8. 30.
[백준 1012] 유기농 배추 1012번: 유기농 배추 (acmicpc.net) 배운것 - 테스트케이스 여러번이니까 같이 쓰는 board, vis 행렬들은 초기화해주기 내 코드 #include using namespace std; int board[51][51]; bool vis[51][51]; int dx[4] = { 1,0,-1,0 }; int dy[4] = { 0,1,0,-1 }; int m, n, k; queue q; void bfs(int i, int j) { vis[i][j]=true; q.push({i,j}); while(!q.empty()) { int x=q.front().first; int y=q.front().second; q.pop(); for(int i=0;i> n >> k; int x, y; for (int i.. 2022. 8. 30.
[백준 1679] 숨바꼭질 1697번: 숨바꼭질 (acmicpc.net) 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 배운것 for(int nxt : {cur-1, cur+1, 2*cur}) 로 한꺼번에 처리하기 정답코드 #include using namespace std; #define X first #define Y second int dist[100002]; int n,k; int main(void){ ios::sync_with_stdio(0); cin.tie(0); cin >> n >> k; fil.. 2022. 8. 29.
[백준 4179] 불! 4179번: 불! (acmicpc.net) 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문 www.acmicpc.net 배운것 불, 지훈이에 대한 BFS를 각각 모두 돌려준 후 비교한다 정답코드 // Authored by : BaaaaaaaaaaarkingDog // Co-authored by : - // http://boj.kr/aed4ec552d844acd8853111179d5775d #include using namespace std; #define X first #define Y second string board[.. 2022. 8. 29.
[백준 1926] 그림 1926번: 그림 (acmicpc.net) 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 내 풀이 #include using namespace std; int n, m; int a[502][502]; bool check[502][502]; int dx[] = { 0, 0, 1, -1 }; int dy[] = { 1, -1, 0, 0 }; int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for (int i = 0; i < n; i++) { for .. 2022. 8. 19.