| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 그리디
- 정렬
- 알고리즘
- 백준
- 프론트앤드
- DFS
- 알고리즘 기초
- Python
- 정글
- js
- react
- BFS
- 크래프톤 정글
- c언어
- 그래프
- Git
- HTML기초
- html
- 프론트엔드
- 혼자 공부해서 개발까지
- 개발자
- 코딩테스트
- 팀프로젝트
- 코딩
- 프로그래머스
- javascript
- Mini-React
- 해시
- CSS
- frontend
- Today
- Total
목록2026/01 (11)
민혁이의 IT스토리
https://www.acmicpc.net/problem/1339 문제 전략이 문제는 여러 개의 단어로 이루어진 알파벳들에 0~9까지의 숫자를 부여하여, 그 단어들의 합을 최대로 만드는 문제입니다.핵심은 어떤 알파벳에 9를 부여할 것인지 결정하는 기준을 세우는 것입니다. 따라서 우리는 다음과 같은 '가중치 합산' 전략을 사용합니다. 추상화된 흐름 가중치 수치화: 각 단어를 훑으며 포함된 알파벳이 전체 합에 기여하는 '자릿수 값'을 계산한다. (예: ABC에서 A는 100, B는 10, C는 1)데이터 통합: 여러 단어에 등장하는 같은 알파벳들의 가중치를 모두 합산하여 하나의 리스트나 딕셔너리에 저장한다.그리디 적용: 합산된 가중치를 내림차순 정렬하여, 가장 큰 값을 가진 알파벳부터 9, 8, 7... ..
https://www.acmicpc.net/problem/11652 문제 풀이 전략숫자의 범위가 -2^{62}$부터 2^{62}$로 매우 넓지만, 카드의 개수 N은 10만 개라는 점에 주목했다. 숫자의 범위를 인덱스로 사용하는 계수 정렬은 메모리 초과로 불가능하므로, 데이터를 리스트에 담아 정렬한 뒤 순차적으로 탐색하는 전략을 세웠다. 추상화된 흐름데이터 수합 및 정렬: 입력받은 $N$개의 카드를 리스트에 저장하고 오름차순으로 정렬한다. 이렇게 하면 같은 숫자의 카드들이 이웃하게 배치된다.선형 탐색(Linear Scan): 리스트를 한 번 훑으면서 인접한 두 카드가 같은지 확인하여 연속된 개수를 센다.최빈값 갱신: 현재까지 센 개수가 기존의 최대 개수보다 많을 때만 정답 변수를 갱신한다.시간 복잡도: 정..
"절대 오지 않을 것 같았던 '정글'의 마지막 날이 드디어 1월 29일 오늘로 다가왔다. 돌아보면 5개월이라는 시간이 마치 한 편의 짧은 필름처럼 순식간에 지나갔지만, 그 필름 안에는 셀 수 없이 많은 밤과 치열한 고민들이 담겨 있다.0주차 미니 프로젝트를 마주하며 느꼈던 막막함이 엊그제 같은데, 어느덧 알고리즘의 늪을 지나고, 악명 높은 '핀토스'와 정면 승부하며 운영체제의 깊은 곳까지 파고들었다. 그리고 그 모든 과정의 결실인 '나만무(나만의 무기)' 프로젝트까지 마쳤다. 단순히 지식을 암기하는 시간이 아니었다. 스스로 문제를 정의하고 끝까지 해결해내는 법을 배우며, 내 한계를 몇 번이고 밀어붙였던 밀도 높은 5개월이었다. 이토록 무언가에 온전히 몰입해 본 경험이 또 있을까 싶을 정도로, 정글에서의 ..
https://www.acmicpc.net/problem/13565 문제 풀이 전략격자 형태의 지도에서 상단의 전류가 하단까지 연결되는지 확인해야 하므로 그래프 탐색 문제로 판단했다. 모든 정점을 방문해야 해서 DFS 혹은 BFS 모두 가능하지만, 구현이 간결한 재귀를 이용한 DFS로 구현해 보았다. BFS로 시도 했다가 추상화된 흐름문제의 요구 조건은 제일 바깥쪽(상단)에서 흘려보낸 전류가 안쪽(하단)까지 전달되는지 묻는 것이다. 단순하게 생각해보자. 일단 제일 윗줄(row=0)을 순회하며 전류(0)를 만나면 연결된 또 다른 길을 찾고, 바닥에 닿을 때까지 계속 탐색하면 된다. 이렇게 했을 때 시간복잡도는 $O(M \times N)$이다. 해결 과정탐색 시작점 설정: 제일 윗줄을 순회하며 전류(0)가..
www.acmicpc.net/problem/2667 문제 풀이 위에 그림 처럼 지도가 주어지고 연결된 영역을 찾아야 하므로 그래프 탐색 문제로 판단했다. 모든 정점을 방문해야해서 DFS 혹은 BFS 모드 가능하지만 비교적으로 쉬운 재귀를 이용한 DFS로 구현해 보았다. 추상화된 흐름문제의 요구 조건은 단지의 갯수와 하나의 단지에 몇개의 집이 있는지 물어본다. 단순하게 생각해보자, 일단 그래프를 정해진 방향으로 순회를 하면서 집(1)을 만나면 연결되어 있는 또 다른 집을 찾고, 업다면 다른 단지를 찾아서 또 다시 순회하면 된다. 이렇게 했을 때 시간복잡도는 O(N^2)이다. 1. 순회오른쪽으로 가면서 집을 찾는다. 2. 확인한 집은 지우고 단지 정복하기 3. 새로운 단지 찾기 해결 과정전체 지도를 순..
"지난번 WebRTC 학습 경험을 바탕으로, 이번 팀 프로젝트에서 'AI 실시간 번역 영상통화 서비스' 개발을 맡게 되었습니다. 제 역할은 핵심 기능인 실시간 미디어 전송 파트였습니다.개발 도중 팀원들과 흥미로운 아이디어가 나왔습니다. '단순히 번역만 보여주는 게 아니라, AI 음성(TTS)이 발화자의 입모양에 맞춰 나오는, 마치 애니메이션 더빙 같은 경험을 주면 어떨까?'아이디어는 좋았지만, 기술적으로는 큰 난관이었습니다. 실시간성을 생명으로 하는 WebRTC에서 '싱크(Sync)'를 맞춘다는 건 정반대의 접근이 필요했기 때문입니다. 오늘은 이 '더빙 같은 영상통화'를 구현하기 위해 제가 고민했던 흔적과, 의도된 지연(Intentional Delay) 및 Simulcast를 활용한 해결 과정을 공유하려..
도커(Docker)를 썼는데 왜 또 ECS가 필요해? 지난 포스팅에서 우리는 "내 프로그램을 컨테이너 박스(Docker)에 담아서 트럭(EC2)에 싣는 법"을 배웠습니다. 그런데 서비스가 대박이 나서 트럭이 100대로 늘어났다고 상상해 보세요.문제 1: 트럭 5대가 갑자기 고장 나면? -> 내가 직접 새벽에 일어나서 새 트럭을 불러야 합니다.문제 2: 트럭 1대에 짐이 너무 많이 실리면? -> 다른 빈 트럭을 찾아서 짐을 옮겨야 하는데, 어디가 비었는지 일일이 확인해야 합니다.문제 3: 프로그램을 업데이트하려면?-> 트럭 100대를 하나하나 세워서 짐을 갈아끼워야 합니다.이 모든 '노가다'를 대신해 주는 자동화 시스템. 그게 바로 AWS ECS입니다.한 줄 요약: ECS는 수많은 도커 컨테이너의 탄생(배..
왜 멀쩡한 내 컴퓨터 놔두고 EC2를 쓸까? 웹 개발을 처음 배우면 보통 내 노트북(Local)에서 개발을 합니다. localhost:3000에서 내 웹사이트가 아주 잘 돌아가죠. 그런데 이걸 친구들에게 보여주거나 실제 서비스를 하려면 어떻게 해야 할까요?가장 무식한 방법은 내 노트북을 24시간 켜두는 것입니다. 하지만 이건 현실적으로 불가능합니다.노트북이 과열되거나 전기가 끊기면 서비스도 죽습니다.IP 주소가 바뀌면 접속이 불가능해집니다.집 전기세 폭탄을 맞을 수도 있습니다.그래서 우리는 "24시간 꺼지지 않고, 전원 관리나 인터넷 연결을 누가 대신 해주는 컴퓨터"가 필요합니다. 그게 바로 서버이고, 아마존(AWS)에서 빌려주는 가상 서버 서비스가 바로 EC2(Elastic Compute Cloud)입..