Skip to content

[Week13] PGS 60059: 자물쇠와 열쇠#80

Merged
sukangpunch merged 1 commit intomainfrom
sukangpunch
Mar 31, 2026
Merged

[Week13] PGS 60059: 자물쇠와 열쇠#80
sukangpunch merged 1 commit intomainfrom
sukangpunch

Conversation

@sukangpunch
Copy link
Copy Markdown
Contributor

문제 정보

풀이 방법

간단히 어떤 방식으로 풀었는지 설명해주세요.

 자물쇠 배열과, 키 배열을 매핑하여 겹치는 부분 없이 자물쇠 배열을 전부 채우면 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<length(확장 자물쇠 배열 size) - M(key size)
 (i, j)에서 key의 배열을 자물쇠 배열에 값을 더한 후, check, check 결과가 true 면 즉시종료
 check는 자물쇠 범위에서 하나라도 1이 아니면 false, 1이상이 될 수도 있다(자물쇠와 key가 겹치는 부분이 존재해도 false)

체크리스트

  • 코드가 정상적으로 실행되나요?
  • 커밋 메시지가 컨벤션을 따르나요?
  • 파일명이 올바른가요? ({닉네임}.{확장자})

추가 코멘트

(선택사항) 추가로 공유하고 싶은 내용이 있다면 작성해주세요.

@sukangpunch sukangpunch self-assigned this Mar 26, 2026
@github-actions github-actions bot added weekly-challenge 주차별 공통 문제 프로그래머스 프로그래머스 문제 labels Mar 26, 2026
@sukangpunch sukangpunch merged commit 0278207 into main Mar 31, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

weekly-challenge 주차별 공통 문제 프로그래머스 프로그래머스 문제

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant