문제 정답 bfs로 구현해야겠다. 그리고 구현은 했지만, 총 인구 이동을 구해야 했다. 그래서 인구 이동을 하고 난 후의 변한 상황을 다시 graph에 반영하고 반복문을 돌려야 했는데, 그게 잘 구현이 안됐다 먼저 인구이동 되는 x,y좌표를 넣어주기 위해서 united라는 배열을 생성했다 그리고 bfs에서 return값으로 넣주었다. 결국 while 문으로 연합된 나라가 있는 경우 flag=1로 설정해서 답을 구해준다. county라고 받고 county가 있는 경우 값을 바꾸어준다 의외로 구현은 납득 가능한 수준의 문제였다:( #bfs로 상하좌우 다 파악을 해서 count를 해준다 #sum도 구한다 #방문하지 않거나 연합인 국가가 아니면 반복해서 파악한다 from collections import deq..
전체 글
소프트웨어학부 재학중/개발을 기록합니다.문제 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 새로 세울 수 있는 벽의 개수는 3개이며, 꼭 3개를 세워야 한다. 예를 들어, 아래와 같이 연구소가 생긴 경우를 살펴보자. 2 0 0 0 1 1 0 0 0 1 0 1 2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 ..
문제 설명 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이 너무 많아서 고민하던 "콘"은 소스 코드에 작성된 모든 괄호를 뽑아서 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 다음과 같이 개발하려고 합니다. '(' 와 ')' 로만 이루어진 문자열이 있을 경우, '(' 의 개수와 ')' 의 개수가 같다면 이를 균형잡힌 괄호 문자열이라고 부릅니다. 그리고 여기에 '('와 ')'의 괄호의 짝도 모두 맞을..
문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다.예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다.1+2+3-4×5÷61÷2+3+4-5×61+2÷3×4-5+61÷2×3-4+5+6식의 계산은 연산자 우선 순위를 무..
DeFi(탈중앙화 금융)란? DeFi는 블록체인 기술, 특히 이더리움과 같은 탈 중앙화된 네트워크를 기반으로 하는 일련의 금융 서비스 및 응용 프로그램을 나타낸다. 이는 중개인의 필요성을 제거하고 전통적인 금융 시스템을 탈중앙화하고 향상시키시 위한 것이다 중개인없고, 저비용 및 신속성, 글로벌엑세스: 누구나 인터넷에 접속하여 참여할 수 있다 DeFi 전통 금융 보유 자신의 자금을 보유 회사가 자금을 보유 통제 자신의 자금의 동선과 사용 방법을 통제 회사가 자금을 관리하지 않고 위탁 전송 몇 분 내에 자금 이체 수동 프로세스로 인해 결제가 몇 일 걸릴 수 있음 익명성 거래 활동은 익명 금융 활동은 개인 식별 정보와 깊게 연결 액세스 누구에게나 열려 있음 금융 서비스를 사용하려면 신청해야 함 투명성 코드 및..
리플 (Ripple) 리플 소개: 리플은 은행 결제 및 네트워킹을 위해 설계된 블록체인 중 하나이다. 특히 은행 간 거래에 중점을 둔 블록체인이다. 리플은 기존의 송금 방식에서 발생하는 지연으로 인한 유동성 리스크를 해결하기 위한 중립적인 유틸리티로, 금융 기관 및 시스템을 위한 것이다. 리플의 주요 특징: 거래 참가자: 리플 거래에는 두 당사자가 필요하다 게이트웨이 자금 기관과 같은 게이트웨이는 사용자가 리플의 유동성 풀에 자금을 넣거나 인출을 할 수 있게 한다. market makers (such as hedge funds od currency trading desks) 거래하려는 통화에서 유동성을 제공 XRP 리플 네트워크의 기본 화폐 현재 6자리로 나눌 수 있으며, 거래 수수료로 사용되고 이는 f..
Byzantine Fault Tolerance 분산 시스템에서 컴퓨터의 일부가 고의로 작동하거나 악의적인 행동을 할 때에도 전체 시스템이 안전하게 동작하는 방법을 제공하는 알고리즘이다 PeerReview 노드 E는 클라이언트 D를 위해 객체를 저장한다 노드 E는 클라이언트 B에게 숨기려고 시도한다 두 클라이언트는 E에서 얻은 인증자를 브로드 캐스트한다 나중에 A는 E를 감사하고 불일치를 발견하며 E를 드러낸다 마침내 노드 A는 E에 대한 증거를 브로드캐스트하여 다른 노드가 E를 드러낼 수 있도록 한다 pBFT 모델이 작동하려면 네트워크의 악의적인 노드가 특정 기간에 전체 노드의 1/3과 동시에 동등하거나 초과하지 않아야 한다 pBFT합의의 각 라운드는 4단계로 구성된다 클라이언트는 서비스 작업을 호출하기..
블록체인 History of Blockchain 사토시 나카모토(Satoshi Nakamoto)라는 가명을 쓰는 사람이 논문을 발표 2009년 블록체인 기술을 적용한 최초의 암호화폐인 비트코인을 발표 (오픈 소스 코드) 2014년 더 많은 암호화폐들이 나옴 2015년 이더리움 출시돼 화폐뿐만 아니라 대출이나 계약 등 다른 자산을 기록할 수 있는 '스마트 계약'을 구축하는 데 활용할 수 있게 됨 블록체인은 비트코인, 인터넷이 이메일을 보내는 것과 같다. 애플리케이션을 구축할 수 있는 큰 전자 시스템이다. what is Blockchain? 블록체인은 데이터의 단일 소유자나 컨트롤러(중앙화)가 없는 동기화된 여러 엔티티에 분산된 분산형 데이터베이스 네트워크이다. 이 데이터 베이스는 transcation(거래..