전체 글 37

[백준] 2839번: 설탕 배달

이번 문제는 백준 난이도 실버4인 '설탕 배달' 문제다. 이 문제는 최대 5000kg의 설탕을 5kg, 3kg의 두 봉지를 이용해 최대한 작은 봉지의 수를 사용해서 5000kg의 설탕을 딱맞아떨어지게 운반하는 봉지수를 구하는 문제다. 일단 이런 문제는 특별한 수학적 공식이 존재하지 않는다.그리고 입력값 또한 5000이하로 작기 때문에 직접 모든 경우의 수를 시도해서 구하는 브루트포스 방법으로 해결하는 게코드도 단순하고 효율적이다. . 그렇다면 모든 경우의 수를 시도하려면 어떻게 하면 될까?일단 문제의 특징을 보면 봉지의 수를 가장 작게 사용하는 것이 목표다.그렇다면 5키로의 봉지를 최대한 많이 사용하고 남은 설탕을 3키로로 딱 맞아떨어지게 사용하면 된다.가장 빠르게 구하기 위해선 5키로의 봉지를 최..

Algorithm/백준 2025.08.05

[백준] 1193번: 분수찾기

이번 문제는 백준 난이도 실버5 '분수찾기' 문제이다.https://www.acmicpc.net/problem/1193 문제의 조건은 나와있는 그림의 분수처럼 위치해 있는 2차원 배열맵에서 지그재그로 이동해야한다.→ 그림으로 표현하면 이런 식으로 이동한다는 뜻이다. 그런데 맵을 자세히 보면 분수형태로 표현되어있지만 이건 곧 원소의 위치를 나타내는 것이기도 하다.→ 행/열 형태. 즉, 2차원 맵을 지그재그로 이동하며 이동 시마다 값이 1씩 증가하게 되는 규칙을 따른다. 그렇게 한 숫자를 입력했을 때 해당 숫자가 위치한 행/열 주소를 출력하는 문제다. 규칙을 보면 대각선으로 이동하며 각 각 층으로 나눠 표시할 수 있을 것 같다.이런식으로그리고 층이 증가할 수록 해당 층의 원소 갯수가 1씩 증가한다.Ex)..

Algorithm/백준 2025.08.04

[백준] 1316_그룹 단어 체커

백준 난이도 실버5 정도 되는 '그룹 단어 체커' 문제를 해결해보았다. 이 문제는 그룹 단어라고 해서 한 알파벳이 연속돼서 나타나 한 단어를 이룬 것이다.즉 입력받은 문자열에서 각 문자를 하나씩 조건에 비교하며 그룹 단어인지 체크한 후 카운팅하는 방식으로 풀어나가면 된다. [조건]신경써야할 조건들은이전 단어와 비교하여 같은 단어인지해당 단어가 이미 사용된 적이 있는지최종적으로 그룹 단어인지이렇게 체크를 해서 카운트 할 수 있다. PYTHON import sysinput = sys.stdin.readlinenum = int(input())count = 0 기본 세팅을 해준다.결과 값을 위해 count 변수 생성for _ in range(num): str = input().strip() chec..

Algorithm/백준 2025.08.02

[Android] constraintlayout

ConstraintLayout은 안드로이드의 고급 레이아웃 시스템이다. 아이템을 상대적으로 자유롭게 배치할 수 있고 복잡한 UI도 계층이 깊어지지 않게 한 번에 그릴 수 있다. 아래 조건을 가진다. 각 뷰는 최소 2개의 제약(좌/우, 위/아래)을 걸어야 위치와 크기를 결정할 수 있음제약이 없으면 뷰가 보이지 않거나 오류남속성명 의미app:layout_constraintStart_toStartOf내 start(좌측)를 다른 뷰의 start에 맞춤app:layout_constraintStart_toEndOf내 start(좌측)를 다른 뷰의 end(우측)에 맞춤app:layout_constraintEnd_toStartOf내 end(우측)를 다른 뷰의 start(좌측)에 맞춤app:layout_constrain..

Android 2025.06.21

[Python] FastAPI 서버와 AsyncContextManager 비동기 작업

기존 FastAPI에서 서버 시작 시 실행할 명령어 블록 호출하기 위해 사용했던 on_event가 현재 deprecated 됐기 때문에 Lifespan을 이용한 이벤트를 관리하는 방법에 대해 알아보려 한다. on_event우선 먼저 on_event 방식으로 실행해보고 진행하겠다.from fastapi import FastAPIapp = FastAPI()@app.on_event("startup")async def scheduler(): scheduler = BackgroundScheduler(timezone=timezone('Asia/Seoul')) scheduler.add_job(notify_expiry_all_users, 'cron', hour=16, minute=47, second=10)..

[라즈베리파이5] 가상환경에서 python3.10설치 및 pip오류 제어

프로젝트 진행 중 Yolo와 MediaPipe Hands를 연동시키기 위해 mediapipe 라이브러리를 설치하려는 도중파이썬 3.10버전 이하에서만 제공을 한다는 것을 알고 파이썬 3.10을 사용하기 위해 가상환경을 생성했다. 우선 라즈베리파이5에서 가상환경을 설치 전 파이썬 3.10.16 버전을 설치했다.파이썬 3.10.16 소스코드 다운로드wget https://www.python.org/ftp/python/3.10.16/Python-3.10.16.tgztar -xf Python-3.10.16tgzcd Python-3.10.16sudo ./configuresudo makesudo make install 설치가 완료되고 파이썬 라이브러리들을 설치하기 위한 가상환경을 생성해준다.python3.10 -m..

[백준_BOJ] 10828번 : 스택

백준 10828번 문제는 스택을 이용하여 각 기능을 구현해보는 문제이다.시간 제한은 0.5초명령의 수는 10,000개 이하  첫번째로 내가 시도한 방법은Scanner를 통한 입력과 Stack클래스를 사용하여 기능을 구현하고 split()메소드를 사용해서 각 명령을 구분했다.import java.util.Scanner;import java.util.Stack;public class Baekjoon10828 { public static void main(String args[]) { Scanner sc = new Scanner(System.in); Stack stack = new Stack(); int N; int pushNum; String order; N = sc.nextInt(); sc.n..

Algorithm/백준 2024.10.03