반응형

분류 전체보기 61

[백준] c++ BOJ 1086 부분합

https://www.acmicpc.net/problem/1806 문제 개요N개의 수열에서 연속된 부분 수열의 합이 S 이상이 되는 가장 짧은 길이를 찾는 문제이다.해결 방법투 포인터(Two Pointer) 기법을 사용하여 다음과 같이 해결한다.low와 high 두 개의 포인터를 사용해 부분 합을 조절한다.sumNum이 S 이상이면 최소 길이를 갱신하고 low를 증가시킨다.sumNum이 S 미만이면 high를 증가시키며 부분합을 키운다.최소 길이가 초기 값(2e9) 그대로면 부분합을 만들 수 없으므로 0을 출력한다.코드 리뷰시간 복잡도: O(N)오류 가능성:low len = 2e9는 정수 연산을 고려하면 INT_MAX가 더 명확함else if (high == N)에서 break 처리 정확해야 함개선점le..

알고리즘(PS) 2025.02.22

[Next.js] 페이지 라우팅

Next.js의 기본 진입점(entry point)은 pages/_app.tsx이며, 페이지 라우팅은 pages 디렉토리 내의 파일에 따라 자동으로 설정됨.기본 진입점 동작 방식npm run dev 실행 → Next.js가 pages/_app.tsx를 로드 (있다면)pages/index.tsx 또는 pages/page.tsx와 같은 파일을 자동으로 라우팅브라우저에서 http://localhost:3000에 접속하면 기본적으로 pages/index.tsx가 렌더링됨next.config.js가 있다면 설정을 참고하여 맞게 라우팅됨Next.js의 기본 진입점 변화Next.js 12 이하: pages 폴더 기반 (기존 pages/_app.tsx, pages/index.tsx 등)Next.js 13 이상: app..

카테고리 없음 2025.02.19

서울 대학교 치과병원에서 사랑니 뺀 후기

사랑니 빼고온 후기유명하다는 사랑니 병원을 여러군데 방문을 했는데도 불구하고 신경이 너무 붙어있어서 대학병원에 가라는 말만 반복돼서 결국 5년을 미루다 드디어 뽑으러 왔다.예약하려고했더니 전화는 잘 안되고 당일 내원해도 된다는 말이 많아서 연차를 내고 예약 없이 다녀왔다. 이때까지만해도 진찰만 받을 줄 알았지, 당일 발치까지 하게 될줄 몰랐다.가는 길혜화역 3번 출구에서 내려 10분정도 걸어가면 우측에 바로 병원이 보이기 시작한다. 차로 이동했다면 주차후 에스컬레이터를 이용해 로비까지 올라가서 접수하면된다.서울대학교치과병원https://naver.me/58FdiKGI 네이버 지도서울대학교치과병원map.naver.com 접수 및 발치 로비에서 외래진료 신청서를 접수하고 구강외과 진료실 앞에서 10분 정도 ..

일상 2025.02.11

[c++] 다중 클라이언트 tcp 구현 (근데 이제 뮤텍스를 곁들인..)

앞서 구현한 단일 클라이언트 채팅에서 서버가 메세지를 받으면, 다른 클라이언트들에게 메세지를 broadcast 하는 형식으로 코드를 확장해 보았다.broadcast : 씨를 넓게 뿌리다 : 하나의 신호나 메시지를 여러 수신자에게 동시에 전달하는 과정단일 클라이언트와 달리, 다중 클라이언트의 경우 연결된 클라이언트 소켓의 목록을 여러 스레드가 동시에 접근/수정하게되면 문제가 발생할수 있으므로 뮤텍스로 공유자원(client 목록)에 대한 접근 관리를 해주어야함 (ex 한 스레드가 클라이언트를 삭제하는 동안 다른 스레드가 clients를 읽으려 하면 데이터 손상 또는 잘못된 참조가 발생할 수있음)(아래 코드에서 스레드는 클라이언트 각각의 통신을 담당하는 독립적인 실행 단위를 말한다. 즉, 하나의 클라이언트와의..

[c++] tcp 소켓 통신을 이용한 단일 클라이언트 채팅 프로그램 구현

네트워크 소켓 통신에 대한 개념을 익히고 사용해보기 위해 c++을 이용해 간단한 채팅을 구현해보여고 한다.socket은 기본적으로 으로 정의 되며, 클라이언트와는 달리 서버 측에서는 port  넘버를 명시적으로 바인딩 해주어야 한다.udp 와는 달리, tcp는 ip 주소와 port number로 유니크하게 식별되지 않음.why?서버에서 대기하고 있는 listen 소켓과 클라이언트 사이 3-way handshake 과정을 통해 클라이언트와 connet 되면 서버 측에서는 소켓을 하나 더 열어 new 소켓과 통신을 하게됨(서버 측에서는 소켓이 여러 개)-> 서버에서는 여러 개의 소켓을 열게 되는 데, 소켓들의 ip 주소와 port number가 같다따라서 listen 이후에는 서버의 어느 소켓으로 통신할지 ..

[백준] boj 14430 : 자원 캐기 (c++)

https://www.acmicpc.net/problem/14430 map이 주어지면 오른쪽 또는 아래쪽으로만 이동하여 주울 수 있는 자원의 최대치를 구하는 문제이다. 개인적으로 이동할수 있는 경우가 정해져있다는 점에서 숨바꼭질 문제와 비슷하다고 느꼈다.이 문제에서는 오른쪽 또는 아래쪽으로만 탐색을 해야하므로, 그래프 전체를 돌아다닐수 없고, 여러가지 경우의 수를 탐색 해 최적의 경로를 구해야 한다는 점에서 DP 문제 일것이다. 라고 느꼈다.우선 여느 DP 와 다를 것 없이 기존의 map 을 보존해야하므로  최대 자원 수를 구하는 이차원 DP와 원래 주어진 map, 2가지 이차원 배열을 선언 해야한다.처음에는 탐색 조건을 아래와 같이 설정했다. for (int i = 0; i 그러나 위와 같이 탐색을 하..

알고리즘(PS) 2025.01.13

[SQL] 경기도에 위치한 식품창고 목록 출력하기 (with.COALESCE 사용법)

https://school.programmers.co.kr/learn/courses/30/lessons/131114 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요정답 코드-- 경기도 위치-- NULL 이면 N-- ID 기준 오름 차순SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS ,COALESCE(FREEZER_YN ,'N..

[GitHub] 이슈를 생성하고, 생성한 branch로 pr 날리기

오늘은 소규모 프로젝트/ 협업 시 기초가 되는 깃허브 사용법에 대해 적어보려한다. 매우 간단하게 적었으나 사진이 많아 복잡해 보일수 있으니 미리 양해를 구한다.기획 어떠한 기능 개발에 대한 논의 후에 계획을 이슈에 적어주면 된다. 먼저 깃허브 레퍼지토리에서 이슈탭에 들어간다. 우측 상단에 New Issue 버튼을 클릭, 현재 짜고자하는 코드에 대한 계획/ 설명에 대해 적는다. Submit new Issue 버튼 클릭브랜치 생성이슈생성이 끝나면 바로 나오는 화면에서 우측 Development 단에 Create a branch 클릭티켓 이름 과 함께 브렌치 이름이 만들어짐 -> Create a branch 클릭복사 버튼 클릭 -> 내 로컬 브랜치와 동기화 하자 git fetch origin  :원격 저장소(..

Github 2025.01.05

도커 데스크탑 설치 ~ 기본이미지 실행하기

리눅스가 아닌 윈도웅에서는 도커 데스크탑을 설치해서 빠른 시작을 할수 있다.https://www.docker.com/products/docker-desktop/ Docker Desktop: The #1 Containerization Tool for Developers | DockerDocker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.www.docker.com 윈도우 AMD64를 다운 받아 주자 Create an account회원가입을 진행하고 나면 간단한 설문조사가 뜬다. 아무거나 누르고 시작하자...

스프링 정리 2025.01.04

[Spring 리팩토링] 자바 설치~spring 시작하기

작년에 만들어 두었던 프로젝트를 리팩토링 해보려 한다.. git clone을 받아왔지만 역시나 문제가 많길래 그냥 처음부터 다시 새로 짜는 게 나을것 같다는 생각에 java 11 -> 17 , spring version 2.x -> 3.x 로 변경하여 작업하려한다.[자바 설치] https://www.java.com/ko/download/ie_manual.jsp?locale=ko Windows용 Java 다운로드 www.java.comJava 11은 점차적으로 지원 종료될 가능성이 있고., Java 17은 최신 LTS 로 장기적으로 유지보수될 가능성이 높기 때문에 선택하였다. (사실 이 프로젝트 개인적으로 마음에 들어서 장기적으로 발전 시키고픈 마음이 아직 남아있다..)Java 11부터  Oracle JD..

스프링 정리 2025.01.02
반응형