본문 바로가기

시뮬레이션22

[백준] 17281.⚾ 야구공 (java) / 시뮬레이션, Next-Permutation, 순열 @시뮬레이션, Next-Permutation, 순열 / 1h 30m 푸는건 1시간만에 풀었는데, 알고보니 문제를 잘못 이해했었다. 다시 풀어서 제출. Gold4로 되어있는데 생각보다 무난한 문제였다 문제 링크 https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종료되고, 두 팀이 공격과 수비를 서로 바꾼다. 두 팀은 경기가 시작하기 전까지 타순(타자가 타석에 서는 순서)을 정해야 하고, 경기 중에는 타순을 변경할 수 없다. 9번 타자까지 공을 쳤는데 3아웃이 발생하지 않은 상태면 이닝은.. 2020. 2. 12.
[백준] 17143.낚시왕 (java) / 시뮬레이션 @시뮬레이션 / 1h 4m 5달 전에 처음 풀었을때는 5시간 넘게 풀었는데도 결국 실패했는데 이번에는 한시간만에 풀어서 뿌듯했다ㅎㅎ 문제 링크 https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. 칸에는 상어가 최대 한 마리 들어있을 수 있다. 상어는 크기와 속도를 가지고 있다. 낚시왕은 처음에 1번 열의 한 칸 왼쪽에 있다. 다음은 1초 동안 일어나는 일이며, 아래 적힌 순서대로 일어난다. 낚시왕은 가장 오른쪽 열의 오른쪽 칸에 이동하 www.acmicpc.. 2020. 2. 11.
[백준] 16637.괄호 추가하기 (java) / DFS, 백트래킹, 조합, 시뮬레이션 @DFS, 백트래킹, 조합, 시뮬레이션 / 3h 이상 간단한 문제라고 생각했는데, 조합에서 한번 헤매고, 계산하는 곳에서 한번 더 헤매서 처음 맞았을때는 도대체 왜 맞는지도 이해가 안됐었다. 재귀를 이용한 DFS 백트래킹 조합을 공부하는 기회가 됐다. 구현 방법 DFS, 백트래킹을 이용한 조합 구현 1. 괄호를 놓을 수 있는 곳은 3+ 8* 7- 9*2 이 네 곳(== 배열크기 N / 2)이다. 그런데 빨간 칸에 연속해서 괄호를 배치할 수는 없으므로, 괄호 개수를 0부터 - 가능한 최대 개수 까지 놓되, 인접한(붙어있는) 칸은 뽑지 않는 조합을 구하기로 했다. 2. 그런데 이 조합을 구하는게 생각보다 너무 어려워서, 결국 실패하고 도움을 받았는데, 바로 이 방법이다. (더 나은 방법은 4번 참고) 1) .. 2020. 2. 10.
[백준] 17472.다리 만들기 2 (java) / 크루스칼, Union-Find, DFS, BFS, 시뮬레이션 @ 크루스칼, Union-Find, DFS, BFS, 시뮬레이션 / 1h 30m 9월 삼성 SW 역량테스트 2번 문제 종이에 쓰는시간 30분을 포함해서 1시간만에 풀었는데 몇가지 실수해서 디버깅하느라 +30분 걸렸다. 다익스트라, DFS 등 여러 개념을 이용해서 풀 수 있는 좋은 문제인 것 같다. 약간 어려운 편. 문제 링크 https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 구현 방법 1. 먼저 각 섬들에 단지번호붙이기 방법.. 2020. 2. 1.
[SWEA] 5650.핀볼 게임 / 시뮬레이션 @시뮬레이션 / 4h 이상 처음에는 오 인덱스 조절만 잘 하면 쉽겠다 하고 풀었는데 이게 웬걸.. 테케도 안맞아서 그때부터 멘붕되고 값을 넣는 족족 stackoverflow로 터져버려서 내 멘탈도 같이 터진 문제였다.. ㅎㅎ 나중에는 swea의 댓글을 참고하면서 코드를 고쳐나갔는데 테케 40->42->43->46->49 순으로 맞아서 진짜 인내심 테스트 하는 줄 알았다. 마지막에 pass 떴을 때에는 되는건 좋은데 왜 되는지 스스로 이해가 안돼서 더 괴로웠다 ㅠㅠ 알고보니 문제를 잘못 이해했던 거였다. 주어진 대로만 풀면 적당한 문제였는데.. 문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6.. 2020. 1. 27.