분류 전체보기 70

[자료구조] 스택(Stack)

후입선출(LIFO : Last-In First-Out) 가장 최근에 들어온 데이터가 가장 먼저 나가는 것. 각티슈에서 가장 위에 있는 것부터 뽑아 쓰는 것처럼! 입력과 출력이 역순으로 필요한 경우 사용한다. (ex. undo, 함수 호출 스택) 연산 init(stack) : 스택을 초기화한다. create() : 스택을 생성한다. push(stack, data) : 데이터를 스택 가장 위에 삽입한다. pop(stack) : 스택 가장 위의 데이터를 삭제한다. is_empty(stack) : 스택이 비어있는지 검사한다. is_full(stack) : 스택이 가득 찼는지 검사한다. peek(stack) : 스택의 맨 위에 있는 요소를 삭제하지 않고 반환한다. 배열을 이용한 스택 #include #define..

공부/자료구조 2023.04.26

[baekjoon] 23354

군탈체포조 문제 군탈 체포조(Deserter Pursuit)란 탈영병을 추적/체포하는 군인들을 말하며, 줄여서 DP 라고도 한다. 어느 날 군탈 체포조인 호열이에게 활동비와 지도를 주고 탈영병들을 모두 잡아 부대에 복귀하라는 명령이 주어졌는데, 돈을 아껴 봉지라면을 사 먹고 싶은 호열이는 활동비를 최대한 아끼면서 탈영병을 모두 잡으려고 한다. 지도는 N×N 크기의 격자로 표현된다. 지도 위에는 부대와 탈영병들의 위치가 주어지며 부대나 탈영병이 없는 나머지 칸에는 모두 톨게이트가 존재한다. 각 톨게이트에는 내야 하는 통행료가 정해져 있고 톨게이트가 있는 칸을 방문하기 위해서는 반드시 통행료를 지불해야 한다. 또한 같은 칸을 여러 번 방문해도 매번 통행료를 내야 한다. 호열이는 부대에서 출발해 탈영병을 모두..

알고리듬/문제 2023.04.24

[TelegramAlarm] 시작(1)

전략 대부분의 거래소에서 코인 목록은 한 번의 api 호출로 가져올 수 있다. 그런데 이때 제공해주는 코인 가격에 대한 정보는 best_bids, best_asks, last_price 이 정도만 제공한다. 제공하지 않을수도 있다. T.T best_bids : 가장 위에 있는 매수 호가 best_asks : 가장 밑에 있는 매도 호가 last_price : 마지막 체결 가격 각 거래소별 코인 목록과 최근 거래가를 가져오고 거래별로 조합해서 겹치는 코인에 대한 차이를 계산한다. { "currency_pair": "BTC_USDT", "last": "27314.9", "lowest_ask": "27314.9", "highest_bid": "27312.1", "change_percentage": "-2.52"..

[Arbitrage Extension] 일단 여기까지...(2)

거래소에서 제공해주는 API를 통해서 가격데이터를 받아왔고 거래소 별로 키 값, 구조 등등.. 여러가지가 달라서 하나의 형식으로 맞춰줬다. 그 이후에는 그냥 단순하게 하나의 거래소를 기준으로 잡고 다른거래소와의 차이를 계산했다. 되돌아보면 너무 단순한 코딩이 된 것 같은데...ㅠㅠ 그리고 아직 공부가 부족해서인지 크롬 확장프로그램 개발중 여러 제약이 많아서..!! 우선 방향을 바꾸기로 했다. ㅎ 확장프로그램은 아래 사진처럼 단순히 거래시세만 볼 수 있게 사용하고 실제 호가에 따른 수익 발생 여부, 텔레그램 알림은 node.js에서 돌리기로... 배울 수 있었던 점. 1. chrome.storage 를 처음으로 사용해봤다. 2. JS 문법..? 3. 역시 생각했던거를 구현해내는건 어렵다. ★★★★★ (공부..

[baekjoon] 7569

토마토 문제 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토에 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지 그 최소 일수를 알고 ..

알고리듬/문제 2023.04.17

[온체인] 빗썸 립체인 설거지를 피할 수는 없었을까?

※ 단순 분석일뿐 진실은 알 수 없습니다. 이틀만에 저점에서 고점대비 120배? 이런 상승이 가능했던 이유는 가두리가 있었기 때문이다. REAP 코인은 49억개 발행에 27억개 소각으로 2022년 4분기 기준 766,500,000개 유통중이다. (온체인상으로는 모르고 유통계획상) 26원기준 약 200억의 시총이다 그렇다면 고점 기준 시총이 3.5조...? 이런 상승이 가능했던 이유는 가두리였기 때문이다. (가두리라고 무조건 오르는건 아니다. 결국 누군가의 손길이 들어가야...) 흔히 말하는 가두리란 네트워크 점검, 지갑 점검 등의 이유로 입금이 불가능한 상태를 말한다. 이번의 경우에는 이더리움 상하이・카펠라 업그레이드로 4월 12일 18시부터 ERC 계열 코인들이 입출금이 불가능했다. 국내 거래소 빗썸과..

[Arbitrage Extension] 시작(1)

Arbitrage란? 차익거래라고도 하며 동일한 상품 가격이 두 시장에서 다를 때 저렴한 시장에서 매입한 상품을 비싼 시장에서 매도해 이익을 얻는 거래이다. 그래서 뭘 만드는데? 차익거래에 편리함을 위해 각 거래소별 차이를 보여주는 확장프로그램을 만든다. 이미 암호화폐 트레이딩하는 사람들이 시세차이를 볼때 주로 보는 사이트가 있다. 그럼에도 만드는 이유는 두 가지가 있다. 1. 위 사이트는 최근 체결가를 토대로 시세차이를 비교해준다. 거래량이 없어서 최신 체결가와 호가가 맞지 않는 경우가 있다. 2. 위 사이트는 비교 대상을 국내중 1곳, 해외 중 1곳을 고를 수 있는데 내가 설장한 거래소외에서 시세 차익이 발생하면 놓칠 수 밖에 없다. 하지만 난 처음인걸... 1. JS 공부하기 2. 크롬 확장프로그램..

[baekjoon] 7453

합이 0인 네 정수 문제 정수로 이루어진 크기가 같은 배열 A, B, C, D가 있다. A[a], B[b], C[c], D[d]의 합이 0인 (a, b, c, d) 쌍의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 배열의 크기 n (1 ≤ n ≤ 4000)이 주어진다. 다음 n개 줄에는 A, B, C, D에 포함되는 정수가 공백으로 구분되어져서 주어진다. 배열에 들어있는 정수의 절댓값은 최대 228이다. 출력 합이 0이 되는 쌍의 개수를 출력한다. 예제 입력 6 -45 22 42 -16 -41 -27 56 30 -36 53 -37 77 -36 30 -75 -46 26 -38 -10 62 -32 -54 -6 45 예제 출력 5 풀이 이전에 풀었던 2470번 두 용액 문제와 비슷하다고 생각했다. 두..

알고리듬/문제 2023.04.15

[baekjoon] 1194

달이 차오른다, 가자. 문제 지금 민식이가 계획한 여행은 달이 맨 처음 뜨기 시작할 때 부터, 준비했던 여행길이다. 하지만, 매번 달이 차오를 때마다 민식이는 어쩔 수 없는 현실의 벽 앞에서 다짐을 포기하고 말았다. 민식이는 매번 자신의 다짐을 말하려고 노력했지만, 말을 하면 아무도 못 알아들을 것만 같아서, 지레 겁먹고 벙어리가 되어버렸다. 결국 민식이는 모두 잠든 새벽 네시 반쯤 홀로 일어나, 창 밖에 떠있는 달을 보았다. 하루밖에 남지 않았다. 달은 내일이면 다 차오른다. 이번이 마지막기회다. 이걸 놓치면 영영 못간다. 영식이는 민식이가 오늘도 여태것처럼 그냥 잠 들어버려서 못 갈지도 모른다고 생각했다. 하지만 그러기엔 민식이의 눈에는 저기 뜬 달이 너무나 떨렸다. 민식이는 지금 미로 속에 있다. ..

알고리듬/문제 2023.04.10

[baekjoon] 12100

2048 (Easy) 문제 2048 게임은 4×4 크기의 보드에서 혼자 즐기는 재미있는 게임이다. 이 링크를 누르면 게임을 해볼 수 있다. 이 게임에서 한 번의 이동은 보드 위에 있는 전체 블록을 상하좌우 네 방향 중 하나로 이동시키는 것이다. 이때, 같은 값을 갖는 두 블록이 충돌하면 두 블록은 하나로 합쳐지게 된다. 한 번의 이동에서 이미 합쳐진 블록은 또 다른 블록과 다시 합쳐질 수 없다. (실제 게임에서는 이동을 한 번 할 때마다 블록이 추가되지만, 이 문제에서 블록이 추가되는 경우는 없다) 입력 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수..

알고리듬/문제 2023.03.23