From f19a9952c5ae4d18bc1f1b68476c2bd71b55e662 Mon Sep 17 00:00:00 2001 From: sukangpunch Date: Thu, 26 Mar 2026 16:28:02 +0900 Subject: [PATCH] =?UTF-8?q?[Week13]=20PGS=2060059:=20=EC=9E=90=EB=AC=BC?= =?UTF-8?q?=EC=87=A0=EC=99=80=20=EC=97=B4=EC=87=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sukangpunch.java" | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 "weekly/week13/PGS_60059_\354\236\220\353\254\274\354\207\240\354\231\200\354\227\264\354\207\240/sukangpunch.java" diff --git "a/weekly/week13/PGS_60059_\354\236\220\353\254\274\354\207\240\354\231\200\354\227\264\354\207\240/sukangpunch.java" "b/weekly/week13/PGS_60059_\354\236\220\353\254\274\354\207\240\354\231\200\354\227\264\354\207\240/sukangpunch.java" new file mode 100644 index 0000000..8e977bf --- /dev/null +++ "b/weekly/week13/PGS_60059_\354\236\220\353\254\274\354\207\240\354\231\200\354\227\264\354\207\240/sukangpunch.java" @@ -0,0 +1,100 @@ +package study.week13; + +// 자물쇠와 열쇠 +// 구현, 브루트포스 +/** + * 자물쇠 배열과, 키 배열을 매핑하여 겹치는 부분 없이 자물쇠 배열을 전부 채우면 true, 아니면 false 인 문제 + * 1. key 를 회전시켜서 (0,90, 180, 270) 자물쇠와 대조 할 수 있다. + * 2. key 를 이동시켜서 키의 부분을 자물쇠와 매핑 가능하다(자물쇠를 넘어가는 부분은 상관 없음) + * 풀이의 키 포인트는, 모든 경우의 수를 대조 해 보기 위해 배열 확장과, rotate이다. + * 배열 확장: key의 일부분만 자물쇠에 대조 해 볼 수 있기 때문에, 키가 위치할 수 있는 모든 가능성을 열어둔 N(자물쇠) + (2*(N-1))(키) 사이즈의 배열을 선언한 후 가운데에 자물쇠를 둔다 + * rotate : 열과 행을 반전(회전, 열과 행의 길이가 다를 수 있음), rotate[i][j] = arr[n-1-j][i] 로직으로 시계방향 90도 회전, n은 y값 size + * 또한, 자물쇠의 좌측 상단 idx를 기반으로 확장 자물쇠 배열의 모든 상황을 테스트 해 봐야 한다. + * i < length(확장 자물쇠 배열size) - M(key size), j