목록알고리즘/Simulation (24)
코드굽는 타자기
링크 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 떨어진 칸의 개수, c는 가장 왼쪽으로부터 떨어진 칸의 개수이다. r과 c는 1부터 시작한다. 상도는 전자통신공학과 출신답게 땅의 양분을 조사하는 로봇 S2D2를 만들었다. S2D2는 1×1 크기의 칸에 들어있는 양분을 조사해 상도에게 전송하고, 모든 www.acmicpc.net 문제설명 시뮬레이션 + 최적화 문제풀이 시뮬레이션 + 최적화 시간 신경써야함. 나무를 하나하나 저장하는방법->나무 나이가 겹치는 경우 겹치는 나무갯수를 저장하여 효율성 증가 문제코드 import..
링크 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 값은 4이다. 1 2 3 2 1 1 4 5 6 배열은 회전 연산을 수행할 수 있다. 회전 연산은 세 정수 (r, c, s)로 이루어져 있고, 가장 왼쪽 윗 칸이 (r-s, c-s), 가장 오른쪽 아랫 칸이 (r+s, c+s)인 정사각형을 시계 www.acmicpc.net 문제설명 완전탐색 + 시뮬레이션 문제풀이 완전탐색 + 시뮬레이션 회전하는 함수는 규칙성이 하, 우, 좌, 상으로 i*2 만큼 swap하고, 마지막은 안한다(또는 한번더 swap해주면 된다...
링크 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 문제설명 완전탐색 + 시뮬레이션 문제풀이 완전탐색 + 시뮬레이션 완전탐색 D)return; qsize = q.size(); for (int i = 0; i < qsize; i++) { now = q.poll(); // 사정범위 내에 적을 찾았으면 target_lst에 저장후 탐색종료 if(n_map[now[0]][now[1]]==1) { target_lst.add(now); return; } for (int d = 0; d < 3; d++) { nr = now[0] +..
링크 SWEA[2477] 문제설명 빡구현 문제풀이 queue 이용 문제코드 package swea; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Comparator; import java.util.LinkedList; import java.util.StringTokenizer; public class Solution2477 { static class Comp implements Co..