#INFO 난이도 : SILVER1 문제 유형 : BFS 출처 : https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net #SOLVE 문제의 조건에 의하면 M X N 크기의 모눈종이에 K개의 직사각형의 좌측 하단 좌표와 우측 상단 좌표가 주어진다. 이때 K개의 직사각형이 만들어지는 곳을 이동 불가능한 공간 (1) 로 초기화 시키고 나머지 빈 부분 (0) 에 대해서 BFS 알고리즘을 적용시키는 방식으로 풀이했다. int board[1..
#INFO 난이도 : SILVER1 문제 유형 : BFS 출처 : https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net #SOLVE 연결된 영역(단지)의 개수와 각 영역(단지)의 넓이를 오름차 순으로 출력하면 되는 간단한 BFS 문제이다. string board[27] : 단지의 정보를 저장할 배열 0 : 집이 없는곳 1 : 집이 있는 곳 bool isVisited[27] : 단지의 방문 여부를 저장할 배열 int dx[4] , int dy[4] : ..
#INFO 난이도 : SIVLER2 문제유형 : BFS 출처 : 7562번: 나이트의 이동 (acmicpc.net) 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net #SOLVE 나이트의 이동만 잘 처리해 주면 되는 간단한 BFS 최단 거리 알고리즘 관련 유형 문제 였다. 나이트는 총 8가지 방향으로 이동할 수 있기에 dx, dy 배열을 이용해 나이트의 이동을 표현한다. 예를들어 dx가 2 dy가 1 이라면 x축 방향으로 2만큼 이동 y축 방향으로 1만큼 이동 이라는 뜻이다. 나이트의 이동에 대한 조건만 잘 설정..
*개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. #1 range-based-for #2 range-based-for & auto #3 range-based-for 단점 #4 range-based-for & reference #5 range-based-for & const #1 range-based-for int main(void) { int ary[5] = {10, 20, 30, 40, 50}; for (int i = 0 ; i < 5 ; i++) { cout
#INFO 난이도 : BRONZE3 출처 : 2884번: 알람 시계 (acmicpc.net) 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net #SOLVE h(시간)과 m(분)을 케이스를 나누어 계산하면 풀리는 간단한 문제였다. 나는 h가 0인 케이스와 0이 아닌 케이스, m이 45보다 작은 케이스와 45보다 크거나 같은 케이스로 나누어 계산했다. h가 0인 케이스 if (h == 0) { if (m < 45) { h = 23; m = 60 - (45 - m); } else { m = m - 45; } } h가 0이 아..