본문 바로가기

분류 전체보기

(433)
미래 도시(파이썬) / 최단경로 그래프 문제 방문원 A는 1에 있는데 K번에 있는 사람과 소개팅을 한다고 한다. 그리고 방문원 A는 X 회사로 가야한다. 즉, 소개팅을 할 K번 회사를 방문 후에 X 회사에 최종 도착해야 한다. 이 때, 총 N개의 도시와 M개의 도로가 주어질 경우 A가 갈 경로의 최단 거리를 구하라 입력 첫째 줄에 전체 회사의 개수 N과 경로의 개수 M이 공백으로 구분되어 차례대로 주어진다(1= INF: print(-1) else: print(graph[1][k] + graph[k][x])
효율적인 화폐 구성 (파이썬) / DP(다이나믹 프로그래밍) 문제 N가지 종류의 화폐가 있다. 이 화폐들의 개수를 최소한으로 이용해서 그 가치의 합이 M원이 되도록 하려고 한다. 이때 각 화폐는 몇 개라도 사용할 수 있으며, 사용한 화폐의 구성은 같지만 순서만 다른 것은 같은 경우로 구분한다. 예를 들어 2원, 3원 단위의 화폐가 있을 때는 15원을 만들기 위해 3원을 5개 사용하는 것이 가장 최소한의 화폐 개수이다. "INPUT" 2 15 2 3 "OUTPUT" 5 "INPUT" 3 4 3 5 7 "OUTPUT" -1 입력 첫째 줄에 N,M이 주어진다(1
떡볶이 떡 만들기(파이썬) / 이진탐색 문제 오늘 동빈이는 여행 가신 부모님을 대신해서 떡집 일을 하기로 했다. 오늘은 떡볶이 떡을 만드는 날이다. 동빈이네 떡볶이 떡은 재밌게도 떡볶이 떡의 길이가 일정하지 않다. 대신에 한봉지 안에 들어가는 떡의 총 길이는 절단기로 잘라서 맞춰준다 절단기에 높이(H) 를 지정하면 줄지어진 떡을 한 번에 절단한다. 높이가 H보다 긴 떡은 H 위의 부분이 잘릴 것이고, 낮은 떡은 잘리지 않는다 예를 들어 높이가 19, 14, 10, 17cm인 떡이 나란히 있고 절단기 높이를 15cm로 지정하면 자른 뒤 떡의 높이는 15, 14, 10, 15cm가 될 것이다. 잘린 떡의 길이는 차례대로 4, 0, 0, 2cm이다. 손님은 6cm만큼의 길이를 가져간다 손님이 왔을 때 요청한 총 길이가 M일 때 적어도 M만큼의 떡을..
이사하기(2020.10.04) 별일 많이 있었는데 별일 없다고 써봤다,,,ㅎ 9월 이사 써야지 써야지 생각만 하다보니 어느새 9월이 다 지나가고 추석연휴도 끝이 나버렸다. 9월은 정말 많은 일들이 있었던 한 달이었다. 많은 일들 중 하나로, 이사를 했다. 잠실에서 구의로 이사하게 됐는데 큰 차이는 아니지만 그래도 출퇴근 하기에 더 편해지기도 했고, 독립을 하기도 했고 여러모로 저녁 후 삶이 많이 달라졌다. 첫날에는 뭔가 싱숭생숭하고 어색하고 그랬는데 정신없이 지내다보니 요즘은 그냥 내 집이 최고인 것 같다. 이사하면서 가구도 새로 사고, 가전들도 몇 개 사고 하니 돈을 정말 많이 썼다(아껴써야지 하면서도 추석연휴도 있고 그러니 참 쉽지 않더라...ㅎ). 여튼 가구를 새로 조립하는데 손이 너무 아팠다...;; 엄마랑 누나가 안도와줬으면..
프로그래머스 - 네트워크(파이썬, LV3) / 탐색(DFS) https://programmers.co.kr/learn/courses/30/lessons/43162?language=python3 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있�� programmers.co.kr 문제는 간단한 DFS 문제이다. LV3의 난이도가 아닌거 같은데 여튼, 섬 개수 찾기와 같은 유형의 문제이다. DFS를 통해 방문할 수 있는 곳을 전부 방문하고 방문하지 않은 곳이 있으면 다시 DFS를 호출하면서 전체를 탐색할 동안 DFS를 몇 번 호출했는지를 찾으면 된다. def solution(n, computers):..
미로탈출(파이썬) / 탐색(BFS) 문제 동빈이는 N * M 크기의 직사각형 미로에 갇혀 있다. 미로에는 여러 마리의 괴물이 있어 이를 피해 탈출해야 한다. 동빈이의 위치는 (1, 1)이고 미로의 출구는 (N, M)의 위치에 존재하며 한 번에 한 칸씩 이동할 수 있다. 이때 괴물이 있는 부분은 0으로, 괴물이 없는 부분은 1로 표시되어 있다. 미로는 반드시 탈출할 수 있는 형태로 제시된다. 이때 동빈이가 탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하시오. 칸을 셀 때는 시작 칸과 마지막 칸을 모두 포함해서 계산한다. 입력 첫째 줄에 두 정수 N, M(4= M: continue # 벽 체크 if graph[next_x][next_y] == 0: continue # 처음 방문시 거리 증가 if graph[next_x][next_y] ==..
음료수 얼려먹기(파이썬) / 탐색(DFS) 문제 N * M 크기의 얼음틀이 있다. 구멍이 뚫려있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하시오. 다음의 4 X 5 얼음 틀 예시에서는 아이스크림이 총 3개 생성된다. "INPUT" 00110 00011 11111 00000 "OUTPUT" 3 입력 첫 번째 줄에 얼음 틀의 새로 길이 N과 가로 길이 M이 주어진다.( 1
마이크로 서비스 패턴 #6 이벤트 소싱(비즈니스 로직 설계) 이벤트 소싱이벤트 발행 및 관리에 대해서 저장을 어떻게 할 것인가?이에 대해 MSA는 이벤트 소싱이라는 패턴을 활용한다. 이벤트 소싱이란 이벤트 저장소에 해당 이벤트를 순차적으로 저장해서 관리하는 것이다. 즉, 이벤트의 최종 결과값이 아닌 전체 순서를 모두 저장하여 관리하는 형태이다. 이러한 이벤트들을 개체에 차례로 적용시켜서 따라가면 최종 결과값을 얻게 된다. 기존 흔히 사용하는 영속화 모델과 비교한다면 이미 정형화된 모델에 상태를 저장하는 과정에서 나타나는 문제를 해결할 수 있다. 영속화 모델에서는 지나간 작업 목록에 대해 기록을 찾기 어렵다(ex. 삭제했던 데이터 전부 가져오기). 계속해서 최신 상태의 개체에 상태를 업데이트 하기 때문이다. 그 외에도 문제점들이 있는데 정리하면 다음과 같다. 영속화..