https://www.acmicpc.net/problem/2538 완전 구현문제였다. 처음에는 조각을 판정하고 각 조각의 칸을 dfs로 돌며 모눈종이의 경계선 또는 다각형의 둘레에 접하는 수만큼 카운트하여 둘레를 직접 계산하는 것을 구현했는데 입력 조건이 가로 세로 길이가 20만이어서 시간초과가 난다는 사실을 깨달았다. 그래서 입력받은 다각형의 꼭짓점 위치를 바탕으로 조각의 둘레를 계산하는 방법으로 바꿨다. 문제에서, 다각형의 꼭짓점을 입력받을 때 시계반대방향으로 입력받는다고 했기 때문에 연속하는 두 꼭짓점의 좌표를 통해 조각을 나눌 수 있다. 1. 연속하는 두 꼭짓점이 모눈종이의 테두리에 위치하는지 확인하여 조각을 나누고, 2. start, end 변수를 통해 꼭짓점을 이동한다. 3. 각 조각의 시..

전체 글
개론디자인 패턴은 많은 라이브러리나 프레임워크의 설계 기반이 되며, 개발자가 구조적인 사고를 하는 데 중요한 역할을 한다. 따라서 디자인 패턴에 대한 이해는 개발자의 기본 소양이라고 할 수 있다.라이브러리 vs 프레임워크공통점 : 공통으로 사용될 수 있는 특정한 기능들을 모듈화 한 것.차이점 : 제어 흐름에 대한 주도성이 누구에게/어디에 있는지 다름.라이브러리 - 흐름에 대한 주도성이 해당 라이브러리를 사용하는 개발자에게 있다. 사용이 자유롭다.프레임워크 - 그 스스로 제어의 흐름에 대한 주도성을 가진다. 디렉토리 구조, 설정 파일 규칙 등 사용자가 지켜야 할 요소가 존재해 상대적으로 자유롭지 않다.디자인 패턴이란?소프트웨어를 설계하면서 반복적으로 마주치는 문제들을, 효율적으로 해결할 수 있도록 정형화한..
문제 설명요약하면, 주어진 삼각형 구조의 꼭대기부터 시작하여, 아래로 내려갈 때 대각선 왼쪽 또는 오른쪽으로만 이동 가능하다는 조건 하에, 경로상의 숫자 합 중 최댓값을 구하는 문제이다. https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 과정 삼각형의 각 칸은 자신의 좌측 상단 혹은 우측 상단들의 값에 영향을 받는다. 따라서, 반복문을 진행하며 삼각형 각 칸의 값을 최댓값으로 업데이트해나가는 DP 로 풀이하였다. 아래와 같이 삼각형의 형태를 직각삼각형 형태로 생각하면 로직을 구현하기 편..
문제 상황로컬(Mac M1)에서 Docker로 만든 이미지는 정상 실행됐음.하지만 docker save로 저장 후 다른 서버에 옮겨서 docker load를 하자 다음과 같은 오류 발생:해결과정1. tar 파일 깨짐 의심에러메시지를 구글링 해봤을 때, 가장 많이 나오는 원인은 ASCII 모드 전송으로 파일이 깨지는 경우이고, 추천 해결 방법은 아래와 같음.https://stackoverflow.com/questions/40622162/docker-load-and-save-archive-tar-invalid-tar-header 하지만 나는 -o, -i 옵션 사용했고, binary 모드 전송도 확인했기 때문에 해당 문제 아니었음 2. 런타임 환경변수 주입 실패Dockerfile의 FROM 절에 들어가는 기본..
문제 설명장르별로 가장 많이 재생된 노래들을 최대 2개씩 골라 전체 재생수가 높은 장르 순으로 정렬해서 베스트 앨범을 만드는 문제이다.세부적인 조건은 아래와 같다. 장르 전체 재생 수가 많은 순서대로 장르 정렬각 장르 안에서는:재생 수가 높은 노래 먼저재생 수가 같으면 고유번호가 낮은 노래 먼저각 장르에서 최대 2곡까지만 수록 https://school.programmers.co.kr/learn/courses/30/lessons/42579# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 과정장르명이 문자열로 주어지고 노래를 장르명을 바탕으로 묶고 연산을 수행해야 한다.따라서, 편의를 위해 아래와..
카카오 로그인 과정3단계로 이루어져 있다.https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#request-code카카오 인증 서버에서 제공해주는 토큰을 사용하는 것은 토큰 만료 기간 설정에 제약이 있어 자체 jwt 구현 및 운용 추천 Step1, Step2는 클라이언트에서 처리할 수 있음백엔드에서는 클라이언트에서 넘겨주는 토큰을 가지고 인증 및 로그인 처리를 구현하면 되는데, Step1,2를 거치지 않으면 Step3도 구현할 수 없기 때문에 테스트할 수 있는 방법에 대해 정리했다.Step1 & 2Kakao Developers 사이트에서 애플리케이션을 만들고 발급받은 restapiKey 와 지정한 redirectUrl 값을 잘 가져와서,아래 ..
STOMPSimple Text Orientated Messaging Protocol의 약자Web Socket 위에서 동작하며 서버를 거쳐 클라이언트 간의 비동기 양방향 통신을 지원하는 프로토콜이다.서버와 클라이언트가 통신할 주체인 메시지의 유형, 형식, 내용들을 정의한다.이름에서 알 수 있듯이 Text 기반의 메시지 형식을 사용한다.pub/sub 형태의 통신이다.PUB(Publish) : 특정 토픽을 구독 중인 모든 클라이언트에게 메시지 발행SUB(Subscribe) : 특정 토픽을 클라이언트가 구독STOMP를 사용한다는 말이 메시지 브로커를 사용한다는 말과 동치는 아니지만, 대부분의 경우, STOMP를 통한 통신은 메시지 브로커와 함께 사용된다. STOMP 사용 이점메시지의 형식을 정의할 수 있기 때문..