code (114) 썸네일형 리스트형 백준 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 인덱스로 옮겨지는 것이지, 인덱스 자체가 변하는 것이 아니다. .. 백준 12100 2048 (easy) 문제: 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2보다 크거나 같고, 1024보다 작거나 같은 2의 제곱꼴이다. 블록은 적어도 하나 주어진다. www.acmicpc.net 코드: 초기상태가 최댓값일 수 있음. 숫자 갱신될 때만 max값 갱신하면 됨 #include #include #include #define f(i, n) for(int i = 0; i < (n); ++i) #define MAP(tp, r, c) ((tp)? nmap[r][c] : nmap[c][r]) using namespace std; .. 백준 3190 뱀 문제: 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따 www.acmicpc.net 코드: map 상하좌우에 padding 넣어서 가로 세로 크기가 2씩 증가했지만 배열 크기를 증가시키지 않아 '틀렸습니다'. /* 1. 좌표 1부터 시작하므로, 뱀 시작 위치는 (1, 1) */ #inc.. SWEA 5648 원자 소멸 시뮬레이션 1. 다른 문제와 달리 좌표평면 상의 좌표가 주어진다. 좌표가 가로위치 -> 세로위치 순으로 주어지며, 오른쪽 아래 방향이 가로위치와 세로위치가 증가하는 방향이다. 2. while(1)의 탈출조건인 ctr T; for (int tc = 1; tc > N; for(int a = 0; a > x >> y >> d >> k; atoms[a] = { 2 * (x + 1000), 2 * (y + 1000), d, k }; } int ans = 0; while (1) { c = 1; ctr = 0; for (int a = 0; a < N; ++a) { if (atoms[a].x == -1) continue; atoms[a].x += dx[atoms[a].d.. 첫번째 #include #include #include #include #include #define hash(r, c) ((r) * 2002 + (c)) using namespace std; int T, N; unordered_map vst;// 초기화 완료 int ans;// 초기화 완료 struct info{ int r, c, d, k; }; vector atom; #define IN(r, c) (0 > r >> c >> d >> k; atom.push_back({ r + 1000, c + 1000, d, k }); } ans = 0; while(1) { bool proc = false; vst.clear(); for(int a = 0; a < atom.size(); ++a){ // 처리 대상 아니면 co.. d #include #include #include #include #include #define hash(r, c) ((r) * 2002 + (c)) using namespace std; int T, N; int vst[2001][2001];// 초기화 완료 vector cls[1001];// 초기화 완료 int ans;// 초기화 완료 struct info{ int r, c, d, k; }; vector atom; #define IN(r, c) (0 > r >> c >> d >> k; atom.push_back({ r + 1000, c + 1000, d, k }); } ans = 0; int c = 0; while(1) { bool proc = false; for (int cc = 1; cc < c; +.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 15 다음