분류 전체보기 62

그리디 알고리즘 - 모험가 길드

모험가 길드 (Python)📝 문제 설명한 마을에 모험가가 N명 있습니다. 모험가 길드에서는 n명의 모험가를 대상으로'공포도'를 측정했는데, '공포도'가 높은 모험가는 쉽게 공포를 느껴 위험 상황에서제대로 대처할 능력이 떨어집니다.모험가 길드장인 재석이는 모험가 그룹을 안전하게 구성하고자 공포도가 X인 모험가는반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있도록 규정했습니다.재석이는 최대 몇 개의 모험가 그룹을 만들 수 있는지 궁금합니다.N명의 모험가에 대한 정보가 주어졌을 때, 여행을 떠날 수 있는 그룹 서의 최댓값을구하는 프로그램을 작성하세요예를 들어 N = 5 이고, 각 모험가의 공포도가 다음과 같다고 가정합시다.2 3 1 2 2이 경우 그룹 1에 공포도가 1,2,3인 모험가..

그리디 알고리즘 - 곱하기 혹은 더하기

곱하기 혹은 더하기 (Python)📝 문제 설명각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때,왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에'X' 혹은 '+' 연사자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를구하는 프로그램을 작성하세요.단, +보다 *를 먼저 계산하는 일반적인 방식돠는 달리,모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정합니다.예를 들어 02984라는 문자열로 만들 수 있는 가장 큰 수는((((0 +2) * 9) * 8) * 4) = 576입니다.또한 만들어 질 수 있는 가장 큰 수는 항상 20억 이하의 정수가 되도록입력이 주어집니다.🔽 입력 예시s = 02984🔼 출력 예시576💡 문제 해결 접근s[0] 이 0 이나 1 일 때 더하고아닐..

그리디 알고리즘 - 1이 될때까지

1이 될때까지 (Python)📝 문제 설명어떠한 수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여수행하려고 합니다.단, 두 번째 연산은 N이 K로 나누어 떨어질 때만 선택할 수 있습니다.예를 들어 N이 17, K가 4라고 가정합시다. 이때 1번의 과정을 한 번 수행하면N = 16이 됩니다. 이후에 2번의 과정을 두 번 수행하면 N은 1이 됩니다.결과적으로 이 경우 전체 과정을 실행한 횟수는 3이 됩니다.이는 N을 1로 만드는 최소 횟수입니다.N과 K가 주어질 때 N이 1이 될 때 까지 1번 혹은 2번의 과정을수행해야 하는 최소 횟수를 구하는 프로그램을 작성하세요.📌 제한사항N2🔽 입력 예시N = 117K = 4🔼 출력 예시16💡 문제 해결 접근지문 대로 구현def solut..

그리디 알고리즘 - 거스름 돈

거스름 돈 (Python)📝 문제 설명당신은 음식점의 계산을 도와주는 점원입니다.카운터에는 거스름돈으로 500원, 100원, 50원, 10원짜리 동전이무한히 존재한다고 가정합니다.손님에게 거슬러 주어야 할 돈이 N원일 때 거슬러 주어야 할동전의 최소 개수를 구하세요. 단, 거슬러 줘야 할 돈 N은 항상 10의 배수이다.🔽 입력 예시N = 1440🔼 출력 예시6💡 문제 해결 접근def 거스름돈(N): cnt = 0 while N > 0: if N % 500 > 0 and N // 500 > 0: cnt += N // 500 N %= 500 elif N % 100 > 0 and N // 100 > 0: cn..

배열 비교하기

배열 비교하기 (Python)📝 문제 설명이 문제에서 두 정수 배열의 대소관계를 다음과 같이 정의합니다.두 배열의 길이가 다르다면, 배열의 길이가 긴 쪽이 더 큽니다.배열의 길이가 같다면 각 배열에 있는 모든 원소의 합을 비교하여 다르다면 더 큰 쪽이 크고, 같다면 같습니다.두 정수 배열 arr1과 arr2가 주어질 때, 위에서 정의한 배열의 대소관계에 대하여 arr2가 크다면 -1, arr1이 크다면 1, 두 배열이 같다면 0을 return 하는 solution 함수를 작성해 주세요.📌 제한사항1 ≤ arr1의 길이 ≤ 1001 ≤ arr2의 길이 ≤ 1001 ≤ arr1의 원소 ≤ 1001 ≤ arr2의 원소 ≤ 100문제에서 정의한 배열의 대소관계가 일반적인 프로그래밍 언어에서 정의된 배열의 대..

배열의 길이에 따라 다른 연산하기

배열의 길이에 따라 다른 연산하기 (Python)📝 문제 설명한 배열을, arr의 길이가 짝수라면 arr의 모든 홀수 인덱스 위치에 n을 더한 배열을 return 하는 solution 함수를 작성해 주세요.📌 제한사항1 ≤ arr의 길이 ≤ 1,0001 ≤ arr의 원소 ≤ 1,0001 ≤ n ≤ 1,000🔽 입출력 예arrnresult[49, 12, 100, 276, 33]27[76, 12, 127, 276, 60]------------ ------------ ------------------------------------ ------------ ------------[444, 555, 666, 777]100[444, 655, 666, 877]📖 입출력 예 설명예제 1번의 arr의 길이는 5로..

대소문자 바꿔서 출력하기

대소문자 바꿔서 출력하기 (Python)📝 문제 설명영어 알파벳으로 이루어진 문자열 str이 주어집니다.각 알파벳을 대문자는 소문자로, 소문자는 대문자로 변환해서 출력하는 코드를 작성하세요.🔽 입력 예시aBcDeFg🔼 출력 예시AbCdEfG💡 문제 해결 접근isupper() 를 쓰자str = input()print(''.join(list(map(lambda s: s.lower() if s.isupper() else s.upper(), list(str)))))🏆 정답 코드print(input().swapcase())🔥 느낀 점swapcase() 를 알게 됨

OpenCV, MediaPipe - 이미지 오버레이 얼굴 인식프로그램

프로그램 사용 영상 [프로젝트 코드 git 링크](https://github.com/yongseokha/face-overlay-app-project)Face Overlay Application 설계서1. 프로젝트 개요1.1 프로그램 소개Face Overlay Application은 실시간 비디오 또는 카메라 스트림에서 얼굴을 인식하고 선택한 인물의 눈, 코, 입 등의 특징을 오버레이할 수 있는 GUI 기반 응용 프로그램입니다.1.2 주요 기능MediaPipe를 활용한 실시간 얼굴 인식 및 특징점 추적카메라/비디오 소스 전환 기능인물 대상을 선택하여 오버레이 적용눈, 코, 입 각각의 크기 조절 (1-400%)위치 조정 (-100 ~ +100 픽셀)눈 간격 조절 (-20 ~ +20 픽셀)특징별 오버레이 On..

Project 2024.12.01

PIL, Tkinter - 이미지 편집/병합 프로그램

프로그램 사용 영상[프로젝트 코드 git 링크](https://github.com/yongseokha/image-merge-app-project)Image Editing And Merging App 설계서1. 프로젝트 개요1.1 프로그램 소개Image Editing And Merging App은 여러 장의 이미지를 사용자가 원하는 방식으로 편집하고 하나의 이미지로 병합할 수 있는 GUI 기반 응용 프로그램입니다.1.2 주요 기능이미지 파일 관리 (추가/삭제/순서 변경)드래그 앤 드롭 지원이미지 편집 (회전/반전/필터)이미지 병합 (수직/수평)실시간 미리보기설정 저장/불러오기1.3 기술 스택언어: Python 3.12.4GUI: tkinter, tkinterdnd2 0.4.2이미지 처리: Pillow (P..

Project 2024.12.01