분류 전체보기
프로그래머스_디스크컨트롤러
프로그래머스_디스크컨트롤러
2021.08.13
프로그래머스_실패율
프로그래머스_실패율
2021.08.13
[네트워크] gRPC
[네트워크] gRPC
2021.08.06세미나에서 했던 내용을 정리해보고자 합니다. 어쨋든 공부를 했으면 정리를 해야 하니 간단히 필요한 내용만 정리해보겠습니다. gRPC 란? RPC는 어디서 많이 들어본 얘긴데, g가 붙었습니다. 그렇습니다. google에서 만든 RPC 프레임워크 입니다. 그럼 왜 google에서 RPC 프레임 워크를 만들었을 까요? 이건 이제 프로세스 통신으로 거슬러 올라갑니다. 생각해보면, 프로세스는 서로 통신하기 위해서 IPC 통신을 합니다. 그 중 소켓을 이용한 방법이 있는데 Session Layer에 위치한 이 소켓은 L7에서 L4로 이동하며 TCP/UDP를 이용해 일종에 창구 역할을 수행하며 네트워크 통신을 하도록 도와주게 됩니다. 즉, 목적이와 통신이 로컬 호스트가 아니라 온라인 범위에서 이루어지기 때문에 네트..
새로운게임_Java
새로운게임_Java
2021.08.04문제 접근 하기 위해 아래 2가지를 만들어주었다. 1. 말의 상태를 관리하는 class를 생성 => 체스의 상태를 관리해줘야 하는 이유는 체스가 움직이면 맨 밑에 있는지 위치는 어디인지 방향은 어디인지를 명확하게 알기 위함이다. 2. 맵, ArrayList 맵 => 맵은 0,1,2 이렇게 표시만 되는 부분이고 ArrayList 맵은 어떤 체스들이 들어 있는지 보여준다. 예를 들면 다음과 같다. ArrayList_Map[0][0] = { 1,2,3 } 의 의미는 (0,0) 좌표에 체스 1,2,3 이 포진해 있다. 이렇게 해석하면 된다. 3. 우선 main으로 쭉 나열해서 푸는 방법 그리고 재귀적으로 푸는 방법 2가지 모두 시도해보았다. 아무래도 main에다 다 때려박아서 하는게 속도는 더 좋았다. 그치만 ..
LeetCode : Partition Label
LeetCode : Partition Label
2021.07.07https://leetcode.com/problems/partition-labels/submissions/ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 class Solution { public List partitionLabels(String s) { //last Index 넣어라 HashMap hm = new HashMap(); String[] splitMsg = s.split(""); for(int i=0; i
KAKAO_[3차]압축
KAKAO_[3차]압축
2021.07.071 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 import java.util.*; class Solution { public int[] solution(String msg) { int[] answer = {}; HashMap hm = new HashMap(); HashMap checkSearch = new HashMap(); String[] alphabet = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",..
Codeforces 풀이를 위한 JAVA 문법 정리-3
Codeforces 풀이를 위한 JAVA 문법 정리-3
2021.06.13시작 마지막으로 Java에서 활용할 수 있는 자료구조들과 정렬 방법에 대해 알아보겠습니다. Stack Stack의 가장 큰 특징인 Last In First Out 을 기억하고 있으면 해당 자료구조의 동작이 쉽게 이해될 것이라 생각합니다. 즉, 먼저 들어간 자료가 나중에 나오는 구조입니다. Stack에 가장 기본적인 문제로 boj.kr/10828 문제가 있습니다. 이 문제는 Stack에 대해 이해하고 제공하고 있는 함수에 대해 활용할 수 있는지 확인하는 문제입니다. ArrayList Java에서 ArrayList는 List 인터페이스를 상속받은 클래스로 일반 배열과는 달리 가변적으로 데이터를 저장할 수 있는 선형리스트 입니다. 즉, 배열과 달리 ArrayList 객체들이 추가되어 저장 용량을 초과하면 자동..
Codeforces 풀이를 위한 JAVA 문법 정리-2
Codeforces 풀이를 위한 JAVA 문법 정리-2
2021.06.13시작 앞 1에 이어서 static, final 구조 및 public, private 구조에 대해 살펴보겠습니다. 또, 배열 선언 방법과 자바에서 지역변수, 전역변수의 경우 초기화하지 않으면 발생하는 문제에 대해 알아보겠습니다. 수식자 수식자의 경우 클래스, 메서드, 필드에 대해 제약을 걸어주는 것입니다. 이 경우 public 과 private는 단어자체에서 알 수 있듯이 public의 경우 접근 제한이 없고, private는 자기 자신의 클래스 내에서만 접근이 가능한 경우입니다. 그래서 보통의 경우 public으로 수식어를 붙여 사용합니다. 함수를 생성할 때 수식자를 작성해주지 않으면 default로 public으로 선언됩니다. 이 다음으로는 static, final에 대해 알아보겠습니다. final 수..
Codeforces 풀이를 위한 JAVA 문법 정리-1
Codeforces 풀이를 위한 JAVA 문법 정리-1
2021.06.13시작 Codeforces를 위해 간단히 몇가지 사항들을 정리해봅니다. 1에서 알아볼 건 기본 입출력, 자료형, 반복문, Call By Value ❌ Call By Reference 입니다. 입출력 Java 입출력에는 BufferedReader 버퍼를 이용해서 쓰는 함수를 활용합니다. 이외에도 Scanner를 사용하기도 하지만 속도가 상대적으로 빠르기 때문에 BufferedReader를 사용합니다. 특히, 공식문서에서 입력 스트림에서 문자를 읽을때 효율적으로 읽기 위해 문자를 버퍼에 저장하는것을 권하고 있습니다. 관련해서는 하기 링크를 참조 부탁드립니다. https://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html BufferedReader ..
Kakao_보석쇼핑
Kakao_보석쇼핑
2021.06.10시작 효율성을 검증하는 문제다. 사실 문제 요구사항은 크게 어렵지 않다. 다만, 보석의 개수가 100,000 이라는 점에서 반복문을 2번만 돌려도 시간초과가 날 수 있으니 유의해야 한다. 배열의 범위가 커지면 O(N)이나 혹은 그 이하로 프로그램이 수행해야 하는 경우가 종종 있다. 이 문제를 접근해서 해결할 수 있는 방법은 투포인트 방법이 있다. 여기서는 원포인트, 투포인트 접근 모두 다뤄보고자 한다. 알고리즘 동작 원리(투포인트) 쉽게 말하면 보석을 조금씩 덜어내고 마침내 사라지면 마지막으로 보석을 본 시점부터 끝까지 돌며 해당 보석을 찾아가는 과정을 나열한 것이다. 조금 복잡해 보이지만, 별거 없다! 눈여겨 봐야할 것은 1. 중복제거해서 쥬얼리 종류 파악 2. HashMap에 각 쥬얼리가 얼만큼 등장..
프로그래머스 바닐라 JS 스터디 - 2주차
프로그래머스 바닐라 JS 스터디 - 2주차
2021.06.09시작 js코드를 작성하면서 기존에 알고있던대로 작성하다 굉장히 삽질을 많이했다. ❗️❗️ 그래서 구글링과 다른 사람들의 코드를 참조하며 과제를 수행했다. 📌 Component 단위로 작성하는 과정은 데이터의 갱신과 같은 Component간의 독립적이지만서도 연관되어 있는 부분이 존재한다면 이를 처리하기가 여간 번거로운것이 아니다. 여기서 오는 과정과 해결방법들에 대해 나는 어떻게 해결했는지, 다른 사람들의 코드는 어떤지 한번 살펴볼것이다. ✔️ 삽질1 삽질의 시작은 Component에서 데이터갱신에 대한 처리방법이다. todolist 데이터를 갱신처리하는 부분에서 newData를 handleSubmit안에 두고 값을 갱신했다. 이것은 나중에 한파일에 있었던 input Component를 분리하게 되면서 ..
Spring 프로젝트를 GCP VM에 배포 하는 과정
Spring 프로젝트를 GCP VM에 배포 하는 과정
2021.06.04시작 생각 외에 많은 이슈들이 발생해서 해결하는데 시간이 걸렸습니다. 기록해 두고, 다음에 배포할 땐 오류를 최소화 하기 위해 작성합니다. :( 개요 Spring boot project를 클라우드로 배포하는 과정을 수행합니다. CentOS GCP 이하 Google Cloud Platform 에서 운영체제 CentOS(ver7)을 선택하였습니다. 배포하기 위한 작업들 가상 머신 : centos 환경설정 → java 11버전, mvn 설치 Spring Project : spring project git에 commit & push, centos에 접속 후 git clone 후 mvn package Google Cloud Platform : firewall 8080 port open 발생했던 이슈들 1) cne..