[이것이 코딩 테스트다 with Python] Chapter 12. 구현 - 외벽 점검

2023. 12. 20. 16:46·코딩테스트/이것이 코딩 테스트다
반응형

< 외벽 점검 >

 

💬 문제 설명

레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 도중에 주기적으로 외벽의 상태를 점검해야 할 필요가 있습니다.
....

 

  입력 (n)   입력(weak)   입력(dist)   출력(result)
  12   [1, 5, 6, 10]   [1, 2, 3, 4]   2
  12   [1, 3, 4, 9, 10]   [3, 5, 7]   1

💬 입력 조건

  • n ( 1 ≤ n ≤ 200. n은 자연수 ) 
  • weak의 길이  ( 1 ≤ 길이 ≤ 15 ), weak  ( 0 ≤ weak ≤ n - 1 ,weak는 자연수)
  • dist의 길이 ( 1 ≤ 길이 ≤ 8 ), dist ( 0 ≤ dist ≤ 100 , dist는 자연수)

💬 출력 조건

  • 취약점을 보수하기 위해 필요한 친구의 최소 수
  • 보수가 불가능한 경우 -1 return 

✍ 문제요약

n( 0 ~ n - 1)크기의 레스토랑 외벽의 취약지점 위치가 weak라는 리스트로 주어진다. 1시간 동안 친구들과 함께 취약지점을 보수해야한다. 이 때, 1시간 동안 움직일 수 있는 거리값을 가진 친구 목록을 담은 dist 리스트도 주어진다. 각각의 친구들은 시계, 반시계 방향으로 움직일 수 있고 모든 지점에서 출발할 수 있다. 이 때, 보수가능한 친구들의 최소 수를 구하여라. 

💯 문제링크

프로그래머스의 "외벽 점검"과 동일한 문제이다.

https://school.programmers.co.kr/learn/courses/30/lessons/60062

 

프로그래머스

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

programmers.co.kr


✅  문제 풀이

혼자 힘으로 해결하지 못했고, 다양한 풀이와 답지를 봐도 이해가 되지않아 유튜브 영상을 참고했다.
영상에서 설명을 잘 해주기 때문에 이것만 참고하면 충분히 풀 수 있을 것이다.

https://www.youtube.com/watch?v=yYc2KiCSIoA

from itertools import permutations

def solution(n, weak, dist):
    Len_weak = len(weak)
    weak = weak + [w + n for w in weak]
    Min = int(1e9)
    for sp in range(Len_weak):
        for case in permutations(dist, len(dist)):
            cnt = 1
            Now = sp
            for i in range(1, Len_weak):
                Next = sp + i
                diff = weak[Next] - weak[Now]
                if diff > case[cnt - 1]:
                    Now = Next
                    cnt += 1
                    if cnt > len(dist) : break
            
            if cnt <= len(dist):
                Min = min(Min, cnt)
    
    return -1 if Min == int(1e9) else Min
반응형

'코딩테스트 > 이것이 코딩 테스트다' 카테고리의 다른 글

[이것이 코딩 테스트다 with Python] Chapter 13. DFS/BFS - 연구소  (2) 2023.12.21
[이것이 코딩 테스트다 with Python] Chapter 13. DFS/BFS - 특정 거리의 도시 찾기  (2) 2023.12.20
[이것이 코딩 테스트다 with Python] Chapter 12. 구현 - 치킨배달  (0) 2023.12.13
[이것이 코딩 테스트다 with Python] Chapter 12. 구현 - 기둥과 보 설치  (2) 2023.12.12
[이것이 코딩 테스트다 with Python] Chapter 12. 구현 - 뱀  (1) 2023.12.08
'코딩테스트/이것이 코딩 테스트다' 카테고리의 다른 글
  • [이것이 코딩 테스트다 with Python] Chapter 13. DFS/BFS - 연구소
  • [이것이 코딩 테스트다 with Python] Chapter 13. DFS/BFS - 특정 거리의 도시 찾기
  • [이것이 코딩 테스트다 with Python] Chapter 12. 구현 - 치킨배달
  • [이것이 코딩 테스트다 with Python] Chapter 12. 구현 - 기둥과 보 설치
hyo_nu
hyo_nu
Annoying Orange Developer
  • hyo_nu
    AOD
    hyo_nu
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 코딩테스트
        • 이것이 코딩 테스트다
        • 알고리즘
      • Style Sheet
        • CSS
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

    • Github
    • Velog
  • 공지사항

  • 인기 글

  • 태그

    구현
    python
    코딩
    BFS
    이것이 취업을 위한 코딩테스트다
    정렬
    코딩테스트
    dfs
    그리기
    알고리즘
    브루트포스
    Algorithm
    dp
    취업
    코딩테스트다
    이진탐색
    그리디
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
hyo_nu
[이것이 코딩 테스트다 with Python] Chapter 12. 구현 - 외벽 점검
상단으로

티스토리툴바