[Algorithm] 백준_가장 긴 바이토닉 부분 수열_11054번 (JAVA)
·
Algorithm
보호되어 있는 글입니다.
[Algorithm] 백준_줄 세우기_2252번 (JAVA) 위상정렬 알고리즘
·
Algorithm
📝문제문제N명의 학생들을 키 순서대로 줄을 세우려고 한다. 각 학생의 키를 직접 재서 정렬하면 간단하겠지만, 마땅한 방법이 없어서 두 학생의 키를 비교하는 방법을 사용하기로 하였다. 그나마도 모든 학생들을 다 비교해 본 것이 아니고, 일부 학생들의 키만을 비교해 보았다.일부 학생들의 키를 비교한 결과가 주어졌을 때, 줄을 세우는 프로그램을 작성하시오.입력첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 횟수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의미이다.학생들의 번호는 1번부터 N번이다.출력첫째 줄에 학생들을 앞에서부터 줄을 세운 결과를 출력한다. 답이 여러 가지..
[CS] 트랜스포트 레이어(UDP, TCP)
·
CS/네트워크
🚀 UDP 체크섬과 오류 검출 UDP(User Datagram Protocol)란?비연결형 프로토콜로, 신속한 데이터 전송을 제공하지만 신뢰성 보장은 하지 않는다.이때 데이터를 전송하면서 발생할 수 있는 오류를 검출하기 위해 체크섬이라는 필드를 사용한다. UDP 체크섬은 데이터가 손상되었는지 여부를 판단하는 데 사용된다. UDP 헤더에는 총 4개의 필드가 있다.Source Port (16비트)Destination Port (16비트)Length (16비트)Checksum (16비트)이 중 Checksum 필드는 데이터 전송 중 오류가 있는지 확인하기 위한 필드이다.수신 측은 이 체크섬을 다시 계산해 전송된 값과 비교한다.일치하지 않으면 데이터가 손상된 것으로 판단한다. UDP 체크섬은 전송 계층 + 일..
[Algorithm] 백준_나의 인생에는 수학과 함께_17265번 (JAVA)
·
Algorithm
📝문제https://www.acmicpc.net/problem/17265세현이의 인생의 목표는 1분 1초 모든 순간 수학과 함께 살아가는 것이다. 그렇기 때문에 매일 수학을 생각하면서 살아가고 있다. 세현이는 밥을 먹을 때도 쌀알의 수를 계산하여 칼로리를 바로 계산하고 한걸음 한걸음 보폭을 계산하여 자신의 활동량을 확인하며 인생의 목표를 실행하며 살아가고 있다. 그런 세현이는 매일 학교를 가면서 지나가는 길에도 수학을 적용시키고 싶었다.세현이네 집에서 학교까지 가는 길은 N x N 크기의 바둑판과 같다. 그리고 각 블록은 1x1 정사각형으로 구분 지을 수 있다. 세현이는 그 블록마다 숫자와 연산자가 존재한다고 생각해서 임의의 숫자와 연산자를 각 블록에 넣어 바둑판을 만들었다.세현이는 학교에서 집으로 ..
[Algorithm] 백준_김밥천국의 계단_28069번 (JAVA)
·
Algorithm
📝문제💡풀이문제 유형다이나믹 프로그래밍 걸린 시간1시간 30분 시간 복잡도O(N) 풀이 방법 도출처음엔 bfs로 접근했다가 메모리 초과 문제로 dp로 돌렸다.문제가 좀 애매했던 거 같다.계단 오르는 횟수를 정확히 K번 가려면 dp[N]==K여야 하는 줄 알았지만생각을해보니 dp[0]은 순간이동으로 몇번째 행동에도 계속 0에 있을 수 있다.이는 곧 최소 횟수만 구하면 그 이후의 횟수는 맘대로 늘리기가 가능하다는 것이다.그래서 dp[N] 아래 두 식을 사용하여 점화식으로 답을 구했다.dp[i+1] = Math.min(dp[i+1], dp[i]+1)dp[i+i/2] = Math.min(dp[i+i/2], dp[i]+1)import java.util.*;import java.io.*;class Main { ..
[Algorithm] 백준_강아지는 많을수록 좋다_27971번 (JAVA) BFS, DP
·
Algorithm
📝문제https://www.acmicpc.net/problem/27971 문제마법소녀 마도카의 고양이에 깊은 감명을 받은 마법소녀 호무라는 자신도 마법을 이용하여 강아지 N$N$마리를 집에서 키우기로 결심했다!호무라는 한 번의 행동에서 다음 2$2$가지 마법 중 하나를 선택하여 사용한다. 가장 처음에는 호무라의 집에 강아지가 존재하지 않는다. A$A$-생성 마법: 강아지 A$A$마리를 호무라의 집에 생성한다. B$B$-생성 마법: 강아지 B$B$마리를 호무라의 집에 생성한다.그러나 미숙한 마법 사용은 호무라에게 추가적인 제약 사항을 주게 되었다. 만약 호무라의 방에 생성된 강아지의 수가 M$M$개의 닫힌구간들 [L1,R1],[L2,R2],⋯,[LM,RM]${[L_1,R_1],[L_2,R_2],\cdot..
[Algorithm] 백준_테트로미노_14500번 (JAVA)
·
Algorithm
📝문제문제폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다.정사각형은 서로 겹치면 안 된다.도형은 모두 연결되어 있어야 한다.정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다.정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다.아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 정수가 하나 쓰여 있다.테트로미노 하나를 적절히 놓아서 테트로미노가 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 프로그램을 작성하시오.테트로미노는 반드시 한 정사각형이 정확히 하나의 칸을 포함하도록 놓아야 하며, 회전이나 ..
[Algorithm] 프로그래머스_신규 아이디 추천 (JAVA) 정규표현
·
Algorithm
📝문제https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 설명카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다.다음은 카카오 아이디의 규칙입니다.아이디의 길이는 3자 이상 15자 이하여야 합니다.아이..
[CS] 애플리케이션 레이어 2
·
CS/네트워크
🚀HTTP 상태유지 기술(쿠키, 세션, JWT)HTTP는 무상태(stateless) 프로토콜로 클라이언트와 서버가 요청/ 응답 후 상태를 유지 하지 않는다.따라서 사용자 인증, 장바구니 유지 등을 위해 상태 유지 기술이 필요하다.쿠키와 세션은 웹 애플리케이션에서 클라이언트와 서버 간의 상태를 유지하기 위한 핵심 기법이다. 쿠키란?클라이언트에 저장되는 작은 데이터 조각으로 Set-Cookie 헤더로 설정한다.1.[클라이언트] 서버로 요청POST /login HTTP/1.1 Host: example.com 2. [서버] 응답하면서 쿠키 설정HTTP/1.1 200 OK Set-Cookie: id=abc123; Path=/; HttpOnly 3. [클라이언트] 이 쿠키 정보를 브라우저의 쿠키 저장소에 저장 4..
[Algorithm] 백준_진우의 달 여행 (Small)_17484번 (JAVA) 🌙
·
Algorithm
📝문제https://www.acmicpc.net/problem/17484우주비행이 꿈이였던 진우는 음식점 '매일매일싱싱'에서 열심히 일한 결과 달 여행에 필요한 자금을 모두 마련하였다! 지구와 우주사이는 N X M 행렬로 나타낼 수 있으며 각 원소의 값은 우주선이 그 공간을 지날 때 소모되는 연료의 양이다.진우는 여행경비를 아끼기 위해 조금 특이한 우주선을 선택하였다. 진우가 선택한 우주선의 특징은 아래와 같다.1. 지구 -> 달로 가는 경우 우주선이 움직일 수 있는 방향은 아래와 같다.2. 우주선은 전에 움직인 방향으로 움직일 수 없다. 즉, 같은 방향으로 두번 연속으로 움직일 수 없다.진우의 목표는 연료를 최대한 아끼며 지구의 어느위치에서든 출발하여 달의 어느위치든 착륙하는 것이다.최대한 돈을 아끼..