728x90
반응형

알고리즘/시뮬레이션 & 구현 19

[백준/구현/JAVA] 14891번 톱니바퀴

문제는 여기! import java.io.*; import java.util.*; public class Main { static int gear[][]; static int d[]; //기어의 회전정보 static int n, m; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; gear = new int[4][8]; for(int i=0; i=0; i--){ if(gear[i][2] != gear[i+1][6]){ d[i] = -d[i+1]; } else { // 회전하지 않으면 ..

[백준/구현/C++] 16234번 인구 이동

문제는 여기! 문제 해결 방법 1. 주변 나라끼리 인구수 차이가 L이상 R이하인 나라들을 체크한다 2. 체크한 나라중에 인접한 나라들을 구하고 인구를 나눈다(BFS) 사용 2번에서 인구수 차이를 한번 더 체크해야한다 #include using namespace std; int N, L, R; int A[51][51]; bool check[51][51], check2[51][51]; int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0}; int year = 0; void clear(){ for(int i=0; i

[백준/구현/C++] 20055번 컨베이어 벨트 위의 로봇

문제는 여기! #include using namespace std; int N, K; int A[201]; int IN, OUT; bool hasRobot[201]; int level = 0; queue robot; void rotateBelt(){ IN -= 1; OUT -= 1; if(IN == 0) IN = 2*N; if(OUT == 0) OUT = 2*N; } bool checkNaegu(){ int cnt = 0; for(int i=1; i= K) return false; else return true; } void solve(){ while(1){ level++; // 벨트 회전 rotateBelt(); // 로봇 이동 int size = robot.size(); for(int i=0; i0 ..

[백준/구현/백트래킹/C++] 17406번 배열 돌리기 4 (삼성 코딩테스트)

https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 문제 해결 방법 1. 회전연산의 순서 정하기 (수열 : 백트래킹) 2. 회전연산 구현 (재귀) 3. 배열 A의 값 구하기 크게 3가지로 나눌 수 있다. 먼저 회전 연산의 순서를 정하기 위해 백트래킹을 이용했다. // 회전연산 순서 정하기 void setOrder(int cnt){ if(cnt == K){ solve(); return; } for(int i=0; ic-..

[백준/구현/C++] 17281번 야구*

https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net #include #define MAX 51 #define PLAYER_NUM 10 using namespace std; int N, answer; int Order[PLAYER_NUM]; int Game[MAX][PLAYER_NUM]; bool selected[PLAYER_NUM]; vector v; void play_the_game(){ int score = 0; int start_player = 1..

[백준/구현/C++] 15685번 드래곤 커브 *

https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net #include #define MAX 101 using namespace std; int n, x, y, d, g; int MAP[MAX][MAX]; int dx[] = {0, -1, 0, 1}; // 오른쪽, 위, 왼쪽, 아래 int dy[] = {1, 0, -1, 0}; vector Dir_Info; void Make_Dragon_curve(){ int s = Dir..

[백준/구현/C++] 14499번 주사위 굴리기 (삼성 SW 역량 테스트 기출)

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 문제 해결 방법 주사위가 굴려질 때 마다 윗면을 어떻게 체크할까 하다가 위, 앞, 오른쪽을 표시하는 포인터를 구현하기로 했다. 그러면 주사위가 굴려질 때 마다 인덱스가 오른쪽처럼 변하게 된다 전체 코드 #include using namespace std; int n, m, x, y, k; int mapp[21][21]; int pl..

728x90
반응형