전체 글(724)
-
[백준/BOJ] 백준 20061번 : 모노미노도미노 2
www.acmicpc.net/problem/20061 20061번: 모노미노도미노 2 모노미노도미노는 아래와 같이 생긴 보드에서 진행되는 게임이다. 보드는 빨간색 보드, 파란색 보드, 초록색 보드가 그림과 같이 붙어있는 형태이다. 게임에서 사용하는 좌표 (x, y)에서 x는 행, www.acmicpc.net 더 이상 움직이면 범위를 넘을 때나 더 이상 움직이면 다른 블록이랑 만날 때까지 블록을 이동시키고, 블록이 사라지는 경우를 확인하여 사라진 윗부분 블록을 이동시켰다. 블록을 이동시킬 때는 deque를 이용했다. 코드 #include #include #include #include #include using namespace std; int n; int dxdy[4][2] = { {0,0},{0,0},..
2021.03.14 -
[백준/BOJ] 백준 3107번 : IPv6
www.acmicpc.net/problem/3107 3107번: IPv6 첫째 줄에 올바른 IPv6 주소가 주어진다. 이 주소는 최대 39글자이다. 또한, 주소는 숫자 0-9, 알파벳 소문자 a-f, 콜론 :으로만 이루어져 있다. www.acmicpc.net 없어진 0으로만 이루어진 단어의 개수를 세고 zero_point = input.find("::");를 통해 0으로만 이루어진 단어를 넣을 위치를 찾는 방법으로 문제를 해결했다. 코드 #include #include #include #include #include #include #include #include using namespace std; string input; int zero_point; int number_cnt = 0; string M..
2021.03.14 -
[백준/BOJ] 백준 14939번 : 불 끄기
www.acmicpc.net/problem/14939 14939번: 불 끄기 전구 100개가 10×10 정사각형 모양으로 늘어서 있다. 전구에 달린 스위치를 누르면 그 전구와 위, 아래, 왼쪽, 오른쪽에 있는 전구의 상태도 바뀐다. 전구 100개의 상태가 주어지면 모든 전구를 끄 www.acmicpc.net 전구 끄기 문제로, 첫 행은 해당 위치를 눌렀을 때와 누르지 않았을 때 두 가지를 고려하고, 다음행부터 해당행의 윗행을 끄는 것에 맞춰서 전구를 누르거나 누르지 않는다. 그리고 모든 칸을 체크했을 때, 마지막행을 제외한 나머지행은 불이 꺼져 있다는 것이 보장되므로 마지막행만 확인하여 불이 꺼져있는지 확인한다. 코드 #include #include #include #include #include usi..
2021.03.14 -
[백준/BOJ] 백준 2800번 : 괄호 제거
www.acmicpc.net/problem/2800 2800번: 괄호 제거 첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식은 괄호가 올바르게 쳐져있다. 숫자, '+', '*', '-', '/', '(', ')'로만 이루어져 있다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개 www.acmicpc.net 스택을 이용해여 match_front_back[200]에 [앞 괄호의 인덱스] = 매치되는 뒷 괄호의 인덱스를 저장하였고, 각 인덱스를 확인하여 '('괄호를 만났을 때 해당 괄호와, 그 괄호와 매치되는 ')'괄호를 선택하는 경우와 선택하지 않는 경우를 고려하여 문제를 해결했다. 그리고 중복되는 문제열을 제거하기 위해 result를 sort 하고, result.erase(uniqu..
2021.03.13 -
[백준/BOJ] 백준 1194번 : 달이 차오른다, 가자.
www.acmicpc.net/problem/1194 1194번: 달이 차오른다, 가자. 첫째 줄에 미로의 세로 크기 N과 가로 크기 M이 주어진다. (1 ≤ N, M ≤ 50) 둘째 줄부터 N개의 줄에 미로의 모양이 주어진다. 같은 타입의 열쇠가 여러 개 있을 수 있고, 문도 마찬가지이다. 그리고, www.acmicpc.net 탐색을 하며 가지고 있는 열쇠 정보를 비트 연산을 통해 저장했으며, discovered와 depth에 위치상황뿐만 아니라 그때의 가지고 있는 열쇠 상황도 고려하여 문제를 해결했다. 코드 #include #include #include #include #include #include using namespace std; int n, m; vector board; int dxdy[4]..
2021.03.13 -
[백준/BOJ] 백준 4574번 : 스도미노쿠
www.acmicpc.net/problem/4574 4574번: 스도미노쿠 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 채워져 있는 도미노의 개수 N이 주어진다. (10 ≤ N ≤ 35) 다음 N개 줄에는 도미노 하나를 나타내는 U LU V LV가 www.acmicpc.net int used_block[10][10]; //[i,j] 도미노가 쓰였는지 확인 int used_row[9][10]; // 어떤 행에 해당 숫자가 쓰였는지 체크 int used_col[9][10]; // 어떤 열에 해당 숫자가 쓰였는지 체크 int used_mini[9][10]; //3X3 작은 보드에 해당 숫자가 쓰였는지 체크 를 통해 상황을 체크해가며 도미노를 넣어 보는 방식으로 문제를 해결..
2021.03.13