Algorithm/시뮬레이션 8

BOJ#3019 테트리스

BOJ#3019 테트리스 * 문제https://www.acmicpc.net/problem/3019 * 풀이- 게임 규칙 : 블럭이 떨어졌을 때, 블럭과 바닥 사이에 채워져있지 않은 칸이 생기면 안된다. - 풀이 방법 : 바닥 높이가 주어지고 블럭의 높이도 알 수 있으므로, 두 정보를 이용하면 빈 칸이 생기는지 알 수 있다. , 평평한 바닥에 블럭을 놓았을 때 다음과 같이 블럭의 높이를 표현할 수 있습니다. ㅗ -> "000"ㅓ -> "10"ㅏ -> "01"ㅜ -> "101" , 두 가지 경우를 그려보았습니다. 블럭 : "10"블럭이 높이 1인 바닥에 놓여졌으므로 "10" -> "21" 블럭과 바닥 사이에 빈 칸이 있는가? = 각 col에 대해 블럭과 바닥 높이의 차이가 일정한지 검사 2 - 1 != 1 ..

BOJ#4920 테트리스 게임

BOJ#4920 테트리스 게임 * 문제https://www.acmicpc.net/problem/4920 이전에 풀어봤던 14500번 테트로미노(삼성 기출)와 비슷한 문제입니다. * 풀이14500번의 경우 (ㅓ, ㅏ, ㅗ, ㅜ)를 제외하고 다른 모양은 전부 dfs로 탐색이 가능했지만,4920번의 경우 위 경우 이외에도 dfs로 탐색이 불가능한 경우가 있습니다. (예 : ㄱ 등등) 따라서 dfs 탐색을 사용하지 않고 패턴을 미리 정해놓은 후 매칭시키는 방법으로 시뮬레이션 하였습니다. * 나의 코드https://github.com/stack07142/BOJ/blob/f0d9bf85e203ff075cbf53506fb38d625f5115a3/BOJ%234920/src/Main.java import java.io...

BOJ#14503 로봇 청소기

BOJ#14503 로봇 청소기 * 문제https://www.acmicpc.net/problem/14503 * 풀이2017년 상반기 삼성전자 SW 역량테스트 기출문제입니다.설명할 것이 없는 문제입니다. 문제 조건에 맞게 구현하시면 됩니다. * 나의 코드https://github.com/stack07142/BOJ/blob/442d75f4db250b3532123d0ae00bd92b50daef30/BOJ%2314503_RobotCleaning/src/Main.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; /** * BOJ#1..

BOJ#3190 뱀

BOJ#3190 뱀 * 문제https://www.acmicpc.net/problem/3190 * 풀이map과 direction 2차원 배열을 선언하였습니다. map이 가질 수 있는 값 : 0(빈칸), 1(뱀), 2(사과) direction이 가질 수 있는 값 : 상, 하, 좌, 우→ 각 위치(row, col)에서 머리 또는 꼬리가 어느 방향으로 이동해야 하는지 알기 위함 시뮬레이션 진행 알고리즘은 아래와 같고, 중간 중간에 map과 direction 정보를 업데이트해서 답을 찾을 수 있게 하였습니다. 머리 이동 - 맵을 벗어난 경우 - 종료 - 빈칸인 경우 - 꼬리 이동 - 사과인 경우 - None - 뱀인 경우 - 종료 ↓ 테스트 케이스 보기 (클릭) ↓5054 D8 D12 D15 D20 L 20 83..

BOJ#2931 가스관

BOJ#2931 가스관 * 문제https://www.acmicpc.net/problem/2931 * 풀이이 문제는 어려운 문제인지, 쉬운 문제인지 헷갈리네요. - 삭제된 노드는 단 1개이고 쉽게 찾을 수 있다. (출발점에서 파이프를 따라가보면 삭제된 노드가 나온다)- 위치는 구했고 거기에 맞는 파이프만 찾으면 되는데 노드에서 출입구가 몇개이고 어느 방향으로 뚫려있는지만 알면? 파이프를 구할 수 있다. 쉽다고 생각하면 쉬운데,,,정형화된(?) bfs, dfs 탐색으로는 어떻게 풀까? 문제 의도는 뭘까 아무튼 bfs, dfs 몰라도 자기 생각을 코드로 옮길 수 있으면 이 문제는 쉽게 풀 수 있을 것 같습니다.입사 시험에 적당한 문제 ↓ 테스트 케이스 보기 (클릭) ↓4 4Z...|...|....--M 4 1..

BOJ#10875 뱀

BOJ#10875 뱀 * 문제https://www.acmicpc.net/problem/10875 * 풀이 ※ 문제 풀 때 주의할 점 주어진 입력의 크기를 잘 살펴봅시다. L 7 TestCase #2332 L4 L4 R => 6 TestCase #3332 R1 R10 R = 9 TestCase #4332 R10 L4 R = 6 TestCase #5332 L10 L4 R = 6 TestCase #63310 L4 L4 R = 4 TestCase #7332 L4 L4 R = 6 TestCase #8342 L2 L1 L5 R = 7 TestCase #9342 R2 R1 R5 L = 7 TestCase #10352 R3 L1 L2 L10 L = 9 TestCase #11352 R3 R1 R2 R10 L = 9 Te..

BOJ#14499 주사위 굴리기

BOJ#14499 주사위 굴리기 * 문제https://www.acmicpc.net/problem/14499 오늘 만들어진 따끈따끈한 문제입니다. 작년 하반기 삼성 SW 역량테스트 문제와 거의 흡사한데요,,제 소스가 도움이 되면 좋겠습니다. * 풀이 1. 주사위 전개도를 표현하는 자료구조를 만든다.2. 회전하는 함수를 만들고, 회전할때마다 주사위 전개도를 갱신해준다.3. 문제의 조건에 따라 시뮬레이션한다. * 나의 소스https://github.com/stack07142/BOJ/blob/master/BOJ%2314499_RollingDice/src/Main.java import java.io.BufferedReader; import java.io.IOException; import java.io.Input..