전체 글

전체 글

    Codeforces Round #817 (Div. 4) 문제 정리 +4

    4문제 정도 풀었고 풀었을 때 계속 추가할 예정입니다!! 1. Spell check 이 문제의 경우 처음 읽었을 때 이해가 안갔는데(영어라 이해를 잘못해서 그런가..) 몇번 읽다보니 뭔소린지 이해가 갔다 ㅎㅎ,, 문제 요구사항은 자신의 이름을 여러가지 순열을 허용해서(예시처럼 Trumi, ruTmi 등..) 입력으로 받은 값이 자신의 이름 값으로 유효한지 체크하는 문제이다. 처음엔 이름 구성도 5글자니까 길이는 5로 정해놓고 저 list안에만 포함되면 되겠구나 생각했는데 정답처리가 안되는 케이스가 있었다. 그래서 곰곰히 생각해보니 5글자가 아니여도 즉, 공백 같은게 들어가도 이름인걸 허용하는 케이스도 있다고 생각했고 길이가 5보다 작은 것들만 처리하니까 정답처리가 됐다. import sys input =..

    git rebase 사용해서 커밋 병합하기

    커밋을 병합할 일이 있어서 예전에 배웠던 git rebase를 사용해서 커밋을 합쳐봤습니다! git rebase -i HEAD~2 뒤에 숫자는 병합할 커밋의 개수만큼 입력하는 것이고 rebase 은 i옵션은 -interactive의 약어입니다! 병합할 커밋을 squash옵션을 넣어주고 병합될 대상을 pick해주면 됩니다 pick b test1 squash c test2 # Rebase a..c onto a # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but me..

    kafka의 기본 개념 정리

    카프카의 기본 개념 카프카 브로커란? 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체이자, 데이터를 분산 저장하여 장애가 발생하더라도 안전하게 사용할 수 있도록 도와주는 어플리케이션 보통 하나의 서버에 한 개의 카프카 브로커 프로세스가 실행되며 데이터를 안전하게 보관하기 위해 3대 이상의 브로커 서버를 1개의 클러스터로 묶어서 운영 데이터 저장, 전송 카프카 브로커는 프로듀서가 요청한 토픽의 파티션에 데이터를 저장하고 컨슈머가 요청하면 파티션에 저장된 데이터를 전달하는데 데이터는 파일 시스템에 저장된다. 파일 시스템으로 저장하다보면 다루기 편하긴 하지만 지속적으로 입출력할 경우 메모리에 올려 사용하는 것보다 속도가 현저히 느린데 카프카는 여기서 페이지 캐시를 사용하여 디스크 입출력 속도를 높여 ..

    Kafka mac에서 설치 및 테스트

    들어가기 압서 mac에서 쉽게 homebrew를 이용해서 설치할 수 있는데 계속 zookeeper 오류가 뜨고 그래서 저는 공식 문서에 있는 quick start 를 참고하면서 진행했습니다! 그리고 참고로 이후 최신 버전에는 zookeeper가 deprecated된다고 합니다! https://www.infoworld.com/article/3660073/why-apache-kafka-is-dropping-zookeeper-for-kraft.html Why Apache Kafka is dropping ZooKeeper Replacing ZooKeeper with internally managed metadata will improve scalability and management, according to ..

    Kafka의 등장 배경 및 특징

    카프카의 등장 배경 링크드인에서 초기에 파편화된 데이터 수집 및 분배를 처리하기 위해 데이터를 생성하는 source application과 데이터가 최종 적재되는 target application을 단방향 연결을 함 ⬇️ 시간이 갈수록 애플리케이션의 개수가 늘어나고 데이터 전송 파이프라인이 늘어나기 시작하면서 아키텍쳐가 복잡해짐 ⬇️ 이는 서비스를 운영하는데 치명적이므로 링크드인 데이터팀은 다양한 데이터프레임워크와 오픈소스를 아키텍쳐에 녹여내어 개선하기 시작하지만 데이터 파이프라인의 복잡도를 개선하기엔 어려움을 겪음 ⬇️ 중앙집중화 시스템인 카프카라는 신규 시스템을 만들어내고 카프카는 기업의 대용량 데이터를 수집하고 사용자들이 이를 실시간 스트림으로 소비할 수 있게 해줌 카프카의 등장 카프카는 이렇게 소..

    intelliJ 명령어 정리!!

    Intellj 단축키 cmd+shift+t -> test 생성 cmd+option+v -> 변수 자동 생성 option+enter -> import cmd+shift+enter -> 끝에 자동완성 후 줄넘김 cmd+/ -> 선택한 줄 주석처리 cmd+n ->getter or setter cmd+b -> class나 method 클릭시 그 class로 넘어감 cmd+o -> class 찾기 cmd+p -> 생성자 매개변수에 뭐가 들어가야하는지 알려줌 cmd+e -> recent 파일 찾기 shift+tab -> 자동 줄 정렬 ctrl+shift+j ->두줄을 한줄로 합침 option누른 상태로 줄 선택하면 동일한 내용이 드래그 psvm -> main methd생성 soutv-> println 자동생성 cm..

    Docker 기본 개념 및 명령어 정리!

    Docker 리눅스의 네임스페이스와 컨트롤 그룹인 cgroup와 같은 리눅스의 커널 기능을 이용해서 리눅스 환경에서 가상화를 제공해주는 것이 도커 이미지 - 필요한 프로그램과 라이브러리, 소스를 설치한 뒤 만든 하나의 파일 컨테이너 - 이미지를 격리하여 독립된 공간에서 실행한 가상 환경 / 컨테이너는 가상머신을 사용해 각 마이크로 서비스를 격리하는 기술 리눅스 네임 스페이스: 각 프로세스가 파일 시스템 마운트, 네트워크, 유저, 호스트 네임 등에 대해 시스템에 독립 뷰를 제공 → 각각의 이름 공간에서 서로 다른 공간으로 프로세스가 침투되지 못하게 함 리눅스 컨트롤 그룹: 프로세스 별로 소비할 수 있는 리소스(cpu, memory, i/o, 네트워크 대역대, device 노드 등) 양을 제한 → 마치 프로..

    Python 1541번 잃어버린 괄호

    https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 수열 문제라서 되게 코드가 간결할줄 알았는데 짜다보니 코드가 점점 길어지는 것 같다ㅏ,,, 먼저 입력으로 주어진 문자열에서 operator와 num을 다른 리스트로 분리하였고 res라는 리스트를 따로 만들어서 - 이후의 숫자를 계산한 값을 넣도록 만들었다. 예를 들어 55-50+40+30+20-30-25 가 입력으로 주어졌을때 리스트가 [55, '-', 140, '-', 30, '-', 25..

    Python 16234번 인구 이동

    https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 문제는 방식은 간단했다. 처음부터 끝까지 모든 인덱스를 방문해서(이미 방문한 곳은 패스) bfs방식으로 연결된 구간은(인구 이동이 일어나는 구간) result에 set으로 저장을 해서 res에 저장했다. 그리고 res에 저장된 연결된 구간들의 인구의 값을 모두 더하고 나눈 다음 그 구간에 값들을 다시 재분배해줬다. 이와 같은 방식으로 res에 아무것도 저장이 되지 않을때까지(이어진 ..

    Python 16929번 Two Dots

    https://www.acmicpc.net/problem/16929 16929번: Two Dots 첫째 줄에 게임판의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에 게임판의 상태가 주어진다. 게임판은 모두 점으로 가득차 있고, 게임판의 상태는 점의 색을 의미한다. 점의 색은 알파벳 대문 www.acmicpc.net 문제를 처음 풀때 graph로 딕셔너리를 만들어서 풀려고 했는데 예시의 경우에선 답이 잘나오는데 중간에 예외적인 경우에서 오답처리가 돼서 좀 오랫동안 고민하다가 그냥 dfs의 재귀만 이용해서 풀었더니 정답이 되었다....ㅠ 풀이 방법은 먼저 방문했는지 확인하기 위해 visited라는 2차원 배열을 만들고 현재 칸을 방문했다는 것을 저장하기 위해 visited값을 바꿔주고 그 다음 이제 현..