Programmers - 사라지는 발판(Java)
https://programmers.co.kr/learn/courses/30/lessons/92345 코딩테스트 연습 - 사라지는 발판 [[1, 1, 1], [1, 1, 1], [1, 1, 1]] [1, 0] [1, 2] 5 [[1, 1, 1], [1, 0, 1], [1, 1, 1]] [1, 0] [1, 2] 4 programmers.co.kr 풀이 다음 2가지의 경우에 승패가 결정됨 상하좌우 4방향 중 어떠한 방향으로도 이동 불가인 경우 하나의 발판에 2명이 위치할 때, 한명이 다른 발판으로 이동하여 현재 발판이 사라질 때 지는 플레이어든 이기는 플레이어든 각자 최적의 플레이로 진행 이기는 플레이어 - 최대한 빨리 승리하는 방향으로 진행 -> 움직이는 횟수를 최소화 지는 플레이어 - 최대한 오래 버티는..
2022. 2. 3.
Programmers - 양과 늑대(Java)
https://programmers.co.kr/learn/courses/30/lessons/92343 코딩테스트 연습 - 양과 늑대 [0,0,1,1,1,0,1,0,1,0,1,1] [[0,1],[1,2],[1,4],[0,8],[8,7],[9,10],[9,11],[4,3],[6,5],[4,6],[8,9]] 5 [0,1,0,1,1,0,1,0,0,1,0] [[0,1],[0,2],[1,3],[1,4],[2,5],[2,6],[3,7],[4,8],[6,9],[9,10]] 5 programmers.co.kr 풀이 풀이에 필요한 변수 정의 및 초기화 탐색마다 갱신해야하는 최대 양의 수 해당 index의 자식 Node를 담고 있는 ArrayList배열 함수내에서 편하게 쓰기위한 입력값 info와 같은 값으로 전역변수 정의..
2022. 1. 24.
BOJ 2615 - 오목(C++)
https://www.acmicpc.net/problem/2615 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 풀이 자표와 방향성에 대해 탐색했는지 확인을 위한 bool 3차원 배열 visit 사용 오목판의 현재 위치에 대해 8방향을 탐색해야하지만 2중 for문을 이용해 왼쪽에서 오른쪽, 위에서 아래로 탐색하기 때문에 4방향으로만(동, 남동, 남, 남서) 제한하여 탐색 위의 방향으로 탐색할 경우 (1, 1)을 시작으로 연속되었는지 확인 한 후 (2, 2)에서 (1, 1)로 연속성을 확인 비효율적이고 vis..
2021. 10. 5.
BOJ 1405 - 미친로봇(C++)
https://www.acmicpc.net/problem/1405 1405번: 미친 로봇 첫째 줄에 N, 동쪽으로 이동할 확률, 서쪽으로 이동할 확률, 남쪽으로 이동할 확률, 북쪽으로 이동할 확률이 주어진다. N은 14보다 작거나 같은 자연수이고, 모든 확률은 100보다 작거나 같은 자 www.acmicpc.net 풀이 N이 14보다 작거나 같기 때문에 시작점을 (14, 14)로 설정 dfs를 사용하여 해당방향으로 갈 확률을 곱해주는 방식으로 진행 더보기 ex) 테스트 케이스 N=2, [25, 25, 25, 25]의 경우 : (동서남북의 확률이 같아 처음 한방향의 확률값 x 4로 계산 가능) 1/4 x (1/4 + 1/4 +1/4) x 4 = 0.75 절대/상대 오차는 10-9 -> 소수점 아래 10자리..
2021. 8. 24.