[백준/c++] 14499번: 주사위 굴리기
·
알고리즘/백준
https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 처음엔 주사위의 상하좌우 전후 방향을 가리키는 포인터를 가지고 하려고 했는데, 생각보다 잘 안돼서 설마 시간이 얼마 걸리나 봤더니 2초였다...!! 시간낭비를 해버린..^^ 그냥 주사위를 열심히 굴려줬다. 📌 진행 순서 1. 해당 방향으로 주사위가 이동 가능한지 체크 2. 주사위 굴리기 3. 굴러간 위치의 값 확인하기 3-1. 0이..
[백준/c++] 14719번: 빗물
·
알고리즘/백준
https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net stack에 넣고 하는 걸로 생각했는데, 사실 더 간단하게 진행할 수 있다. 괜히 stack으로 하다가 헷갈려서 계속 실수했다. 양끝 블록은 웅덩이가 될 수 없기 때문에 1~w-2 블록들을 차례대로 하나씩 웅덩이가 될 수 있는지 체크해주면 된다. 양쪽에 웅덩이의 기둥이 뒬 수 있는 max left, right를 구하고 더 작은놈에서 현재 블록의 값을 빼주면 된다. 음수가 나올 수..
[백준/c++] 15686번: 치킨 배달
·
알고리즘/백준
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 처음 문제를 풀 땐 BFS과 Backtracking으로 할 생각이었다. 정작 풀어보니까 시간 초과가 발생했는데 생각해보니 BFS를 하지 않고 치킨집과의 거리를 절댓값으로 구하면 되는 것이었다..!ㅠ 그래서 Backtracking으로 짜서 경우의 수에 대해서 다시 했지만 또 시간초과가 발생해서 뭐지... 어떻게 해야 되는 건가 싶어서 다른 사람의 코드를 봤다. 경우의 수를 2진..
[백준/c++] 11559번: 뿌요뿌요
·
알고리즘/백준
https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 시뮬레이션 문제는 끝까지 붙잡고 있으면 시간이 어떻게 되든 풀리는 듯... 반례만 잘 찾으면..^^ 그런데 문제는 코테때 시간을 왕창 다 써버리는 문제가..^^ 그래서 그냥 문제를 많이 풀어보고 유형과 흔히 나오는 규칙들을 알아가는 게 중요한 듯싶다. BFS를 이용해 터지는 뿌요뿌요를 변경해주고, 위에 있는 뿌요뿌요를 밑으로 내려주면 된다. 이렇게 순서를 정하고 차례대로 ..
[백준/c++] 15683번: 감시
·
알고리즘/백준
https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 다른 분들은 어떻게 했는지 모르겠지만, 모든 경우의 수를 받아서 진행했다. 그냥 포기할까 하다가 그래도 2시간은 해봐야지~라는 마음으로 시작했다. 1시간 30분 정도 걸렸다... 흑흑 계속하다 보면 늘지 않을까 싶다. 굉장히 긴 코드가 만들어졌다...^^ 우선, 각 cctv의 감시 범위가 다르기 때문에 그에 따른 함수를 모두 다르게 만들어줬다. 그나마 cctv의 종류가 5개여서 가능했다..
[백준/c++/swift] 1926번: 그림
·
카테고리 없음
https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 간단한 BFS의 Flood Fill 문제 c++ #include #include #include using namespace std; int n, m; int maxV = 0, cnt = 0, sizeCnt = 0; int arr[501][501]; bool visit[501][501]; int dir[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; int BFS(int ..
[백준/c++/swift] 19941번: 햄버거 분배
·
알고리즘/백준
https://www.acmicpc.net/problem/19941 19941번: 햄버거 분배 기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사 www.acmicpc.net 처음엔 앞에 K번, 뒤에 K번 하는 것을 나누고, 맨 앞/뒤에 있는 원소도 따로 구현했는데 생각해보니 앞으로 K번, 뒤로 K번을 한 번에 쭉 훑으면서 진행할 수 있겠다 생각했다. H 햄버거를 먹으면 해당 자리를 - 로 변경해주고 카운팅 하면서 진행했다. c++ #include #include using namespace std; int main() { ios::sync_with_stdio(0);..
[백준/c++/swift] 10448번: 유레카 이론
·
알고리즘/백준
https://www.acmicpc.net/problem/10448 10448번: 유레카 이론 프로그램은 표준입력을 사용한다. 테스트케이스의 개수는 입력의 첫 번째 줄에 주어진다. 각 테스트케이스는 한 줄에 자연수 K (3 ≤ K ≤ 1,000)가 하나씩 포함되어있는 T개의 라인으로 구성되어 www.acmicpc.net 완전 탐색 문제로, n의 범위가 1000 밖에 되지 않으므로 3중 for문을 사용해서 해결했다! c++ #include using namespace std; int eureka[1001]; bool check(int n){ for(int i=1; i n; cout
[백준/c++] 4396번: 지뢰 찾기
·
카테고리 없음
https://www.acmicpc.net/problem/4396 4396번: 지뢰 찾기 지뢰찾기는 n × n 격자 위에서 이루어진다. m개의 지뢰가 각각 서로 다른 격자 위에 숨겨져 있다. 플레이어는 격자판의 어느 지점을 건드리기를 계속한다. 지뢰가 있는 지점을 건드리면 플레이어 www.acmicpc.net n x n 격자에 m개의 지뢰가 있다. 지뢰가 없는 지점을 누르면 상화좌우, 대각선 칸의 지뢰 개수를 출력한다. 지뢰의 위치를 알려주는 Arr와 현재 플레이어가 플레이하면서 열린 칸을 보여주는 Brr가 주어진다. [해결 방법] - Arr를 입력받으면서 지뢰의 위치값을 vector에 저장 - Brr를 전체 돌면서 'x'라면 상하좌우, 대각선 지뢰 개수 카운팅 여기서 현재 위치의 Arr 값이 * 라면 ..
녕이
'BOJ' 태그의 글 목록 (7 Page)