전체 글 45

주식 가격

프로그래머스의 '주식가격' 문제는 초 단위로 기록된 주식 가격 배열을 보고, 각 가격이 떨어지지 않고 유지된 기간이 몇 초인지 계산하는 문제입니다.이 문제는 단순하게 이중 for문으로도 풀리지만, 효율성을 고려하면 **스택(Stack)**을 사용하는 것이 정석입니다. 두 가지 방법을 모두 설명해 드릴게요.1. 스택(Stack)을 이용한 효율적인 풀이스택을 사용하면 모든 원소를 한 번씩만 훑으면서 처리할 수 있어 시간 복잡도가 $O(N)$으로 매우 효율적입니다.Python def solution(prices): n = len(prices) answer = [0] * n stack = [] # 가격이 떨어지지 않은 인덱스를 담는 스택 for i in range(n): # ..

카펫

프로그래머스의 '카펫' 문제는 격자의 개수와 넓이 사이의 관계를 이용하는 완전 탐색(Brute Force) 유형입니다. 수학적인 특징을 이해하면 아주 간단하게 풀 수 있습니다.1. 핵심 아이디어: "약수와 둘레의 관계"카펫의 가로 길이를 w, 세로 길이를 h라고 가정해 봅시다. (문제 조건에 따라 w >= h입니다.)전체 격자 수: 가로 $\times$ 세로 = brown + yellow노란색 격자 수: 노란색은 갈색에 둘러싸여 있으므로, 가로와 세로에서 각각 2를 뺀 값의 곱입니다.(w - 2) * (h - 2) = yellow갈색 격자 수: 전체 격자에서 노란색을 뺀 값입니다.brown = (w * h) - yellow또는 테두리의 특징을 이용해 brown = 2w + 2h - 4로 계산할 수도 있습..

입국심사

프로그래머스의 '입국심사' 문제는 탐색 범위가 무려 10억 명, 심사 시간은 10억 분에 달하는 전형적인 이분 탐색(Binary Search) 문제입니다.1. 핵심 아이디어: "관점의 전환"이 문제의 핵심은 '어떻게 사람을 배분할까?'가 아니라, **'특정 시간 $T$가 주어졌을 때, 모든 심사관이 총 몇 명을 심사할 수 있는가?'**로 질문을 바꾸는 것입니다.결정 문제로 변환: "모든 사람을 심사하는 데 $T$분만큼 걸리는가?"라는 질문에 대해 YES/NO를 판단합니다.계산식: $T$분 동안 한 심사관이 심사할 수 있는 인원수는 $\lfloor T / \text{심사시간} \rfloor$입니다. 모든 심사관의 처리량을 합친 값이 $n$보다 크거나 같다면, 그 시간 내에 심사가 가능하다는 뜻입니다.이분 ..

N으로 표현

프로그래머스의 'N으로 표현' 문제는 동적 계획법(Dynamic Programming, DP)의 전형적인 문제입니다. 이 문제의 핵심 아이디어와 풀이 과정을 정리해 드릴게요.1. 핵심 아이디어: "사용 횟수별로 만들 수 있는 수의 집합"이 문제는 N을 $k$번 사용해서 만들 수 있는 수들의 집합을 차례대로 구해 나가는 것이 핵심입니다.DP[k] 정의: N을 $k$번 사용하여 만들 수 있는 모든 수의 집합(Set).연산 규칙: $k$번 사용하여 만든 수들은 다음의 조합으로 탄생합니다.N을 $k$번 이어 붙인 수 (예: N=5일 때, $k=3$이면 555)사칙연산: $i$번 사용해서 만든 수들과 $(k-i)$번 사용해서 만든 수들을 서로 사칙연산 한 결과들.예: 3번 사용($k=3$) = (1번 사용 $\t..

2026년 농업·농촌 정책과 도전 과제 분석

🧑‍🌾 2026년 농업·농촌 주요 환경과 도전 과제"2026년 한국 농업·농촌은 ‘이상기후·재해, 농가 경영불안, 농촌 소멸’이라는 3대 구조적 위기에 직면하고 있다."농업·농촌의 대내외 여건항목내용이상기후 및 재해극한기후와 재해 빈도 및 강도 증가, 농업생산 불확실성 확대노동력 부족 및 비용 상승노무비 지수가 2018년 92.4에서 2024년 135.8로 급등, 만성적 인력부족 문제농업소득 정체 및 감소20년간 농업소득 답보, 2024년에는 1천만 원 이하로 하락, 도시근로자 소득의 60% 수준에 불과농촌 인구 감소와 고령화인구감소지역 89곳 중 84곳이 농촌, 젊은 세대 이탈 지속 및 외국인 근로자 의존 증가글로벌 경제 및 무역 위험수출 경기 회복 기대, 내수 부진 및 지정학적 리스크, 한·미 무..

농업관련 2026.01.24

단어 변환

1. 핵심 아이디어: 최단 경로 찾기이 문제는 begin에서 시작해 target에 도달하는 최소 단계를 찾는 문제입니다.**BFS(너비 우선 탐색)**를 사용하는 것이 가장 유리합니다. BFS는 시작점에서 가까운 노드부터 탐색하므로, target을 발견하는 순간이 곧 최단 경로가 됩니다.**DFS(깊이 우선 탐색)**로도 풀 수 있지만, 모든 경로를 확인하며 최솟값을 업데이트해야 하므로 BFS보다 비효율적일 수 있습니다.2. 그래프 정의 (연결성 확인)두 단어가 연결되어 있다는 것은 **"알파벳이 딱 하나만 다르다"**는 뜻입니다. 이를 판별하는 함수를 먼저 작성하세요.비교 로직: 두 단어의 길이는 같으므로, 인덱스별로 비교하여 다른 문자의 개수가 정확히 1일 때만 True를 반환합니다.3. BFS 구현..

I’ve been ~ing

1. 취미 및 여가 생활I’ve been getting into pilates lately to improve my core strength and posture. (요즘 코어 근력과 자세를 교정하려고 필라테스에 푹 빠져 있어요.)Getting into: '어떤 활동에 재미를 붙이다'라는 뜻으로, 단순히 'starting'보다 몰입한 상태를 잘 보여줍니다.I’ve been binge-watching a lot of crime documentaries on Netflix during my free time. (요즘 여가 시간에 넷플릭스에서 범죄 다큐멘터리를 엄청나게 몰아보고 있어요.)Binge-watching: 콘텐츠를 한꺼번에 몰아보는 것을 뜻하며, 미디어 시청 습관을 말할 때 매우 유용한 표현입니다.2..

영어공부/표현 2026.01.24

I'm here to

① I'm here to give you a quick rundown of my background and some of my favorite hobbies. (제 배경과 제가 좋아하는 취미들에 대해 간단히 설명해 드리려고 합니다.)Give a rundown: "~에 대해 상세히/빨리 설명하다"라는 뜻으로, 단순한 'tell'보다 훨씬 전문적인 느낌을 줍니다.Background: 자기소개 시 '나의 배경'을 일컫는 세련된 단어입니다.② I'm here to talk about a memorable trip I took to Jeju Island a few years back. (몇 년 전 제주도로 떠났던 기억에 남는 여행에 대해 이야기해 보려고 해요.)Memorable: '기억에 남는'이라는 뜻으로, 오..

영어공부/표현 2026.01.24

supposed to ~ 하기로 되어있다

① It was supposed to be a relaxing getaway, but everything went south from the moment we arrived at the airport. (편안한 휴가가 될 예정이었지만, 공항에 도착한 순간부터 모든 게 잘못되었어요.)Go south: 상황이 악화되다, 잘못되다라는 원어민스러운 표현입니다.Relaxing getaway: '휴가'를 단순히 vacation 대신 사용하는 세련된 표현입니다.② I was supposed to hand in the report by yesterday, but I got caught up in some urgent family matters. (어제까지 보고서를 제출하기로 되어 있었는데, 급한 집안일 때문에 발이 묶..

영어공부/표현 2026.01.24

좌표 관련 템플릿

파이썬(Python)의 collections.deque를 활용한 가장 표준적인 BFS(너비 우선 탐색) 템플릿입니다. 이 구조를 익혀두시면 '게임 맵 최단거리'뿐만 아니라 대부분의 미로 찾기 문제를 풀 수 있습니다.1. BFS 기본 코드 템플릿 (Python)Python from collections import deque # 효율적인 Queue 구현을 위해 deque 라이브러리를 가져옵니다.def bfs(maps): n = len(maps) # 맵의 세로(행, Row) 길이를 구합니다. m = len(maps[0]) # 맵의 가로(열, Column) 길이를 구합니다. # 1. 상하좌우 이동을 위한 방향 설정 (x는 행 이동, y는 열 이동) # dx[0], dy[0]은..