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 14889 - 스타트와 링크(C++)
https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 풀이 1. 스타팀에 누가 포함될지 N/2명을 뽑는 경우의 수에 대해 탐색 - bool 자료형의 1차원 배열 visit을 이용하여 스타트 팀에 포함되었는지 여부를 확인 - 배열의 값이 true면 스타트 팀, false면 링크 팀 2. 스타트 팀, 링크 팀에 대해 각각 점수 계산 - 2중 for문을 이용하여 i와 j가 같은 팀일때의 해당 팀의 점수를 더함 - visit[i] && visit[j] 이면 스타트 팀, !vis..
2021. 10. 5.
Programmers - 자물쇠와 열쇠(C++)
https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 풀이 자물쇠 크기 재할당 (2 x (열쇠크기-1) + 자물쇠크기) x (2 x (열쇠크기-1) + 자물쇠크기) 후 정중앙에 자물쇠 값 할당 더보기 재할당된 자물쇠에서 한칸씩이동, 90회전으로 모든 경우의 수를 탐색 - 열쇠의 사이즈만큼 자물쇠 배열에 + 연산 - 실제 자물쇠의 영역을 확인 -> 값이 1이 아니라면 return false - returen false로 빠져나가는 것이 없다면 return true ..
2021. 9. 5.