분류 전체보기 133

[프로그래머스 / Java] 비밀 코드 해독

https://school.programmers.co.kr/learn/courses/30/lessons/388352 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요비밀 조직의 보안 시스템을 해독하기 위해, 1부터 nnn까지의 숫자 중 서로 다른 5개 숫자로 이루어진 비밀 코드를 찾아야 합니다. m번의 시도를 할 수 있으며, 각 시도마다 입력한 5개의 숫자와 비밀 코드 간의 일치하는 숫자의 개수를 확인할 수 있습니다. 주어진 m번의 시도 결과를 바탕으로, 가능한 비밀 코드 조합의 개수를 구하는 문제입니다.  문제 접근 방법모든 가능한 5개 숫자의 조합을 생성1부터 n까지의 숫자 중 5개를 선택..

[프로그래머스 / Java] 유연근무제

https://school.programmers.co.kr/learn/courses/30/lessons/388351 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요직원들이 설정한 출근 희망 시각과 실제 출근 시각을 비교하여, 정해진 기간 동안 지각 없이 출근한 직원의 수를 구하는 문제입니다.직원은 1주일 동안 출근 희망 시각 + 10분 이내에 출근해야 합니다.주말(토요일, 일요일)은 이벤트에 영향을 주지 않습니다.출근 시각은 HHMM 형식의 정수로 주어지며, 이를 시간과 분 단위로 변환하여 비교해야 합니다.주어진 시작 요일(startday)에 따라 출근 기록을 주중과 주말로 구분하여 검사해야..

[프로그래머스 / Java] 지게차와 크레인

문제https://school.programmers.co.kr/learn/courses/30/lessons/388353 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요A 회사의 물류 창고에는 알파벳 대문자로 구분된 컨테이너가 세로 n 줄, 가로 m 줄로 총 n x m개가 놓여 있습니다. 특정 컨테이너 출고 요청이 들어오면 지게차 또는 크레인을 사용해 출고합니다.지게차 사용 (알파벳 1개 요청): 창고 외부와 연결된 컨테이너만 출고 가능크레인 사용 (알파벳 2개 요청): 해당 종류의 모든 컨테이너 출고모든 요청을 수행한 후 남은 컨테이너 개수를 구하는 것이 목표입니다. 접근 방법입력 데이터 저..

[ODOQ] 정적 IP 주소 할당 방식, 동적 IP 주소 할당 방식

[One Day One Question]정적, 동적 IP 주소 할당 방식의 차이점에 대해서 설명해 주세요.1. 정적 IP 주소 할당 (Static IP Address)고정된 IP 주소를 수동으로 설정하여 특정 기기에 영구적으로 할당하는 방식입니다.변경되지 않으며, 네트워크 관리자나 사용자에 의해 직접 설정됩니다.특징:항상 동일한 IP 주소를 유지합니다.서버, CCTV, 원격 접속이 필요한 장치 등에 사용됩니다.설정이 복잡할 수 있으며, 관리가 필요합니다.보안 위험이 상대적으로 클 수 있습니다(고정된 IP가 공격 대상이 될 가능성 증가).일반적으로 추가 비용이 발생할 수 있습니다(ISP에서 별도로 제공). 2. 동적 IP 주소 할당 (Dynamic IP Address)네트워크에서 자동으로 할당되는 방식으로..

cs/ODOQ 2025.02.26

[ODOQ] NAT

[One Day One Question]NAT 기능에 대해서 설명해 주세요.NAT(Network Address Translation)는 사설 IP 주소를 공인 IP 주소로 변환하여 인터넷과 통신할 수 있도록 해주는 기술입니다. 1. 공인 IP 주소 부족 문제 해결IPv4 주소는 한정되어 있으며, 모든 장치에 공인 IP를 할당하기 어렵습니다.NAT를 사용하면 하나의 공인 IP를 여러 개의 사설 IP 주소와 공유하여 인터넷에 접속할 수 있습니다.특히 가정, 기업, ISP(인터넷 서비스 제공업체)에서 많이 사용됩니다. 2. 보안 강화내부 네트워크의 사설 IP 주소는 외부에서 직접 접근할 수 없습니다.이는 외부 공격자가 내부 장치의 IP를 직접 알 수 없게 만들어 보안을 강화합니다.방화벽과 함께 사용하면 네트워..

cs/ODOQ 2025.02.25

[ODOQ] CSRF 공격

[One Day One Question]CSRF공격에 대해서 설명해 주세요.  CSRF(Cross-Site Request Forgery, 사이트 간 요청 위조) 공격은 사용자가 신뢰하는 웹사이트를 대상으로, 공격자가 의도하지 않은 요청을 전송하도록 유도하는 보안 취약점입니다. 즉, 사용자의 권한을 악용하여 원치 않는 행동을 수행하게 만드는 공격 방식입니다. 1. CSRF 공격공격자는 사용자가 이미 로그인된 웹사이트에서 특정 요청을 실행하도록 조작합니다.예를 들어, 사용자가 은행 웹사이트에 로그인한 상태에서 공격자가 만든 악성 링크를 클릭하면, 공격자가 설정한 계좌로 돈을 이체하는 요청이 사용자 모르게 실행될 수 있습니다.이 공격은 사용자의 인증 정보(세션 쿠키, 토큰 등) 를 악용하여 실행됩니다.  2...

cs/ODOQ 2025.02.21

[백준 / Java] 14719 빗물

문제https://www.acmicpc.net/problem/14719  문제 개요2차원 세계에서 블록이 쌓여 있을 때, 비가 온 후 고일 수 있는 빗물의 총량을 구하는 문제입니다. 각 블록의 높이가 주어지며, 블록 사이에 움푹 파인 공간이 있으면 빗물이 고입니다. 고일 수 있는 물의 총량을 계산하여 출력하면 됩니다.  문제 접근 방법각 위치에서 고일 수 있는 빗물 계산특정 위치 i에서 고일 수 있는 빗물의 양은"해당 위치에서 왼쪽에서 가장 높은 블록과 오른쪽에서 가장 높은 블록 중 작은 값"에서 현재 블록의 높이를 뺀 값입니다.즉, water[i]=min(leftMax[i],rightMax[i])−height[i] 이를 위해, 각 위치에서 왼쪽과 오른쪽의 최대 높이를 미리 구해둡니다.왼쪽 최대 높이(l..

문제/백준 2025.02.21

[백준 / Java] 2467 용액

문제https://www.acmicpc.net/problem/2467  문제 개요산성 용액(양수)과 알칼리성 용액(음수)이 주어졌을 때, 두 개의 용액을 혼합하여 특성값이 0에 가장 가까운 조합을 찾는 문제입니다. 두 용액의 특성값을 더한 값이 0에 가까울수록 좋은 조합이며, 이를 만족하는 두 용액을 오름차순으로 출력해야 합니다. 용액들의 특성값은 정렬된 상태로 주어지므로, 이를 활용하여 효율적인 탐색이 가능합니다.  문제 접근 방법이 문제는 "두 수의 합이 특정 값에 가장 가까운 쌍을 찾는 문제"로, 투 포인터(Two Pointer) 알고리즘을 활용하여 해결할 수 있습니다.해결 방법투 포인터 사용입력된 용액 배열이 오름차순 정렬된 상태이므로, 양 끝에서 시작하는 두 개의 포인터(left, right)를..

문제/백준 2025.02.21

[프로그래머스 / MySQL] 업그레이드 할 수 없는 아이템 구하기

문제https://school.programmers.co.kr/learn/courses/30/lessons/273712 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr ❌ 처음 작성한 쿼리SELECT item_id, item_name, rarity FROM item_info WHERE item_id NOT IN ( SELECT DISTINCT parent_item_id FROM item_tree )order by item_id desc;이 쿼리에서 parent_item_id를 SELECT했는데, NULL 값이 포함될 수 있음parent_item_id는 ROOT 아이템에 대해 NULL 값을 ..

[MySQL] JOIN, LEFT JOIN, RIGHT JOIN

💡 JOIN, LEFT JOIN, RIGHT JOIN 개념SQL에서 JOIN은 여러 개의 테이블을 조합하여 하나의 결과 집합을 만드는 데 사용됨각 JOIN의 차이를 이해하려면, 기준 테이블(LEFT)과 조인할 테이블(RIGHT) 개념을 알아야 함 1. INNER JOIN (기본 JOIN)두 테이블에서 일치하는 데이터만 가져옴일치하지 않는 데이터는 결과에서 제외됨SELECT A.컬럼명, B.컬럼명FROM AINNER JOIN B ON A.공통컬럼 = B.공통컬럼; INNER는 생략 가능 (JOIN = INNER JOIN) 예시SELECT employees.name, departments.dept_nameFROM employeesJOIN departments ON employees.dept_id = dep..

언어/MySQL 2025.02.21