본문 바로가기

CS46

[백준] 4485: 녹색 옷 입은 애가 젤다지? python 구현 / 다익스트라(dijkstra) 문제 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주인공, 링크는 지금 도둑루피만 가득한 N x N 크기의 동굴의 제일 왼쪽 위에 있다. [0][0]번 칸이기도 하다. 왜 이런 곳에 들어왔냐고 묻는다면 밖에서 사람들이 자꾸 "젤다의 전설에 나오는 녹색 애가 젤다지?"라고 물어봤기 때문이다. 링크가 녹색 옷을 입은 주인공이고 젤다는 그냥 잡혀있는 공주인데, 게임 타이틀에 젤다가 나와있다고 자꾸 사람들이 이렇게 착각하니까 정신병에 걸릴 위기에 놓인 것이다. 하여튼 젤다...아니 링크는 이 동굴의 반대편 출구, 제일 오른쪽 아래 칸인 [N-1][N-1]까지 이동해야.. 2023. 5. 1.
[백준] 22251: 빌런 호석 python 구현 / 완전 탐색 문제 풀이 예시: 입력: 9 1 2 5 LED를 2개까지 바꿀 수 있을 때, 5층 → 3층, 6층, 8층, 9층 처음에는 5층을 변환해서 가능한 숫자가 있다면 개수를 세려고 했다. 그렇게 하면 경우의 수가 너무 많아짐..! 한 자리 수가 아니고 K=6이라 6자리 수 일경우 바꿀 수 있는 P를 분배하는 방법 부터해서 계산이 너무 복잡해졌다.. 그래서 정답을 먼저 확인한 후 완전탐색으로 코드를 바꾸었다. 그리하여 풀이는 아래와 같다. 디지털 숫자를 0과 1로 표현한다 (ex) 0 → 1 1 1 1 1 1 0, 중간 빼고 다 켜짐) 현재의 층을 0과 1로 표기한다. K에 맞춰 앞을 0으로 표기해준다. (K=4, X=5 → "0005") 이후 1번과 동일하게 현재의 층을 0과 1 로 표기한다. 1층부터 N층까지.. 2023. 4. 27.
[백준] 2493: 탑 python 구현 / 스택(Stack) 문제 KOI 통신연구소는 레이저를 이용한 새로운 비밀 통신 시스템 개발을 위한 실험을 하고 있다. 실험을 위하여 일직선 위에 N개의 높이가 서로 다른 탑을 수평 직선의 왼쪽부터 오른쪽 방향으로 차례로 세우고, 각 탑의 꼭대기에 레이저 송신기를 설치하였다. 모든 탑의 레이저 송신기는 레이저 신호를 지표면과 평행하게 수평 직선의 왼쪽 방향으로 발사하고, 탑의 기둥 모두에는 레이저 신호를 수신하는 장치가 설치되어 있다. 하나의 탑에서 발사된 레이저 신호는 가장 먼저 만나는 단 하나의 탑에서만 수신이 가능하다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 개의 탑이 수평 직선에 일렬로 서 있고, 모든 탑에서는 주어진 탑 순서의 반대 방향(왼쪽 방향)으로 동시에 레이저 신호를 발사한다고 하자. 그러면, 높이.. 2023. 4. 24.
[백준] 5972: 택배 배송 python 구현 / 다익스트라, 시간복잡도 문제 농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 구두쇠라서 최소한의 소들을 만나면서 지나가고 싶습니다. 농부 현서에게는 지도가 있습니다. N (1 2023. 4. 24.