본문 바로가기

전체 글

(168)
백준 14888 연산자 끼워넣기 문제: 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱셈(×)의 개수, 나눗셈(÷)의 개수이다. www.acmicpc.net 코드: 변수명이 엉망이다... #include #include #define f(i, n) for(int i = 0; i < (n); ++i) using namespace std; int N; int oprn[11]; int oprt[10], o; int ub = -1000000000; int lb = 1000000000; int main() { ios_ba..
백준 14503 로봇 청소기 문제: 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다. 로봇 청소기는 다음 www.acmicpc.net 코드: 인접한 상하좌우 모든 칸이 이미 청소 되었거나 벽이라면 2번 수행을 되풀이 하기 위해 continue 필요 (후진은 현재 위치를 청소하지 않기 때문에 clean을 호출하면 안 된다.)..
백준 14502 연구소 문제: 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. www.acmicpc.net 실수: dfs에서 재귀함수 호출 누락 bf 탈출 조건 충족시 return! 재사용하는데 재방문을 허용하지 않는 vst -> int로 선언 코드: 전자는 빈 공간의 좌표를 1차원 배열에 저장하여 bf에..
문제 3개인지 최대 3개인지 잘 보기(조합법 달라짐)
백준 14501 퇴사 문제: 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 코드: P[i]의 인덱스는 i == N - 1까지 유효 -> P[i] 사용 전 i 탈출조건 i > N #include #define f(i, n) for(int i = 0; i N) return; if (Ps > ans) ans = Ps; BF(i + 1, Ps); if(i < N) BF(i + T[..
백준 14500 테트로미노 문제: 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누 www.acmicpc.net 코드: visited 재방문 허용 필요 visited 재방문 위해서 dfs에서 return 전 visited 초기화 필요, 도중 return하더라도 초기화 가능토록(goto) 하드코딩 더블 체..
TC 도형 그리기 코드가 기본 도형 그릴 수 있는지 확인(테트로미노) 제일큰 TC boundary chk 제일 작은 TC 쉽고 간편하게 버그 발견 가능
백준 14499 주사위 굴리기 문제: 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도에 쓰여 있는 수가 북쪽부터 남쪽으로, 각 줄은 서쪽부터 동쪽 순서대로 주어진다. 주사위를 놓은 칸에 쓰여 있는 수는 항상 0이다. 지도의 각 칸에 쓰여 있는 수는 10을 넘지 않는 자연수 또는 0이다. 마 www.acmicpc.net 코드: 문제에 주어진 주사위 전개도로 dice의 인덱스를 고정한다. 회전으로 주사위 각 면의 숫자가 src 인덱스에서 dst 인덱스로 옮겨지는 것이지, 인덱스 자체가 변하는 것이 아니다. ..