반응형
https://programmers.co.kr/learn/courses/30/lessons/60059
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr


풀이 방법은 카카오 공식 해설을 참고하면 된다.
https://tech.kakao.com/2019/10/02/kakao-blind-recruitment-2020-round1/
2020 신입 개발자 블라인드 채용 1차 코딩 테스트 문제 해설
올해에도 2020이라는 멋진 숫자와 함께, 카카오의 신입 개발자 채용을 시작했습니다! 그 여정 중 첫 단계로 1차 코딩 테스트가 지난 9월 7일 토요일 오후 2시부터 오후 7시까지 5시간 동안 진행됐는데요. 저희 준비위원들도 설렘과 긴장 속에 원활한 진행을 위해 노력했고, 무사히 1차 테스트를 마칠 수 있었습니다. 테스트에는 총 7문제가 출제됐고, 응시자는 5시간 이내에 순서와 상관없이 문제를 해결해야 […]
tech.kakao.com
해설도 해설이지만, 구현하는 게 생각보다 까다로운 문제.
key[y - start_y][x - start_x]가 필요하다는 걸 완벽히 이해한 뒤에야 문제를 풀어낼 수 있었다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def rotate(maps): | |
return [list(reversed(i)) for i in zip(*maps)] | |
def solution(key, lock): | |
hole = 0 | |
for y in range(len(lock)): | |
for x in range(len(lock[0])): | |
if lock[y][x] == 0: | |
hole += 1 | |
for _ in range(4): | |
for start_y in range(-len(key)+1, len(lock)): | |
for start_x in range(-len(key)+1, len(lock[0])): | |
# 자물쇠와 lock 일치하는 개수 / match여부 | |
check = 0 | |
match = True | |
for y in range(start_y, start_y + len(key)): | |
if y < 0 or y >= len(lock): | |
continue | |
for x in range(start_x, start_x + len(key[0])): | |
if x < 0 or x >= len(lock[0]): | |
continue | |
# 자물쇠 돌기와 열쇠 돌기가 만나는 경우 | |
if lock[y][x] == 1 and key[y - start_y][x - start_x] == 1: | |
match = False | |
break | |
# 자물쇠 돌기와 홈 구멍이 일치하는 경우 | |
elif lock[y][x] == 0 and key[y - start_y][x - start_x] == 1: | |
check += 1 | |
# 더 체크할 필요 없이 자물쇠와 열쇠가 맞지 않는 경우 | |
if not match: | |
break | |
# 자물쇠 돌기와 홈 구멍 개수가 일치하는 경우 | |
if match and check == hole: | |
return True | |
key = rotate(key) | |
return False |
반응형
'프로그래밍 > 코딩테스트 문제풀이' 카테고리의 다른 글
[Python] 백준 17143. 낚시왕 (0) | 2020.04.10 |
---|---|
[Python] 프로그래머스. 2019 카카오 겨울 인턴 recruit - 징검다리 건너기 (Level 3) (0) | 2020.04.09 |
[Python] 프로그래머스. 2019 카카오 겨울 인턴 recruit - 불량 사용자 (Level 3) (0) | 2020.04.06 |
[Python] 프로그래머스. 2019 카카오 겨울 인턴 recruit - 튜플 (Level 2) (0) | 2020.04.03 |
[Python] 프로그래머스. 2019 카카오 겨울 인턴 recruit - 호텔 방 배정 (Level 4) (0) | 2020.04.02 |