티스토리

Data Science LAB
검색하기

블로그 홈

Data Science LAB

suhye.tistory.com/m

Computer Vision

구독자
3
방명록 방문하기

주요 글 목록

  • [CV] Object Detection library (1) - Detectron 2 Object Detection은 통합된 라이브러리가 없어서 실무나 캐글에서는 주로 MMDetection이나 Detectron2를 사용함 MMDetection Detectron2 특징 - 전체 프레임워크를 모듈 단위로 분리해 관리할 수 있음 - 많은 데이터 프레임워크 지원 - 다른 라이브러리에 비해 빠른 편 - 전체 프레임워크를 모듈 단위로 분리해 관리할 수 있음 - OD외에 Segmentation이나 Pose prediction등의 알고리즘 지원 지원 모델 Fast R-CNN, SSD, YOLO v3, DETR 등 Faster R-CNN, RetinaNet, Mask R-CNN, DETR 등 Detectron 2 https://github.com/facebookresearch/detectron2 GitH.. 공감수 0 댓글수 0 2023. 5. 28.
  • [CV] Object Detection 1stage detectors 2 stage detector는 localizatin과 classification을 모두 해야 학습이 진행되기 때문에 속도가 매우 느리다는 단점 때문에 1 stage detector가 등장하게 되었다. 1 stage detectors - localization, classification 동시에 진행 - 전체 이미지에 대해 특징 추출, 객체 검출이 이루어짐 -> 간단하고 쉬운 디자인 - 속도가 매우 빠름 (Real-time detection) - 영역을 추출하지 않고 전체 이미지를 보기 때문에 객체에 대한 맥락적 이해가 높음 (Background error가 적음) YOLO YOLO v1 : 하나의 이미지의 Bbox와 classification 동시에 예측하는 1 stage detector 등장 YOLO.. 공감수 1 댓글수 0 2023. 5. 22.
  • [CV] Object Detection Neck 정리 본 포스팅은 Naver Boostcamp AI Tech 5기 Object Detection 강의 자료를 바탕으로 작성되었습니다. Neck 등장 배경 기존의 RPN은 backbone network를 통과한 마지막 feature map만 사용하여 RPN을 통한 ROI를 추출하였다. -> 중간에 있는 feature들을 사용하기 위해 Neck 등장 - feature map 은 low level(큰 feature map)은 작은 객체를, high level (작은 feature map)은 큰 객체를 추출함 (high level에서는 semantic 정보가 풍부하지만 localization 정보가 부족, low level에서는 localization 정보가 풍부하지만 sementic 정보가 부족) - Back bo.. 공감수 0 댓글수 0 2023. 5. 21.
  • [CV] Object Detection 2 Stage Detectors (R-CNN, Fast-RCNN, Faster-RCNN) 정리 본 포스팅은 Naver Boostcamp AI Tech 5기 Object Detection 강의 자료를 바탕으로 작성되었습니다. 0. Overview Object Detection은 크게 One-stage Detector과 Two-stage Detector로 분류된다. Two - Stage Detector은 사람의 객체 인식 방법과 유사하다. 큰 흐름은 객체가 있을 법한 위치 -> 해당 객체가 무엇인지 예측 1. R-CNN Object Detection 분야에 딥러닝을 최초로 적용시킨 모델이며 여러 모델의 기준이 되는 중요한 모델 객체 위치 예측 + 클래스 판별 Process 1) 입력이미지 받음 2) Selective Search를 통해 약 2000개의 ROI (Region of interest) 추출.. 공감수 0 댓글수 0 2023. 5. 21.
  • [CV] Object Detection Overview (evaluation 방법) 본 포스팅은 Naver Boostcamp AI Tech 5기 Object Detection 강의 자료를 바탕으로 작성되었습니다. 0. Object Detection이란 한 물체 (single object)가 아닌 여러 물체에 대해 어떤 물체인지 클레스를 분류하는 classification 문제와 그 물체가 어디에 있는지를 Bounding box를 통해 위치 정보를 나타내는 Localization 문제를 모두 포함한다. 1. History 2. Evaluation : Object Detection에서의 정확도 측정은 Ground Truth와 Prediction간의 비교를 통해 이루어짐 이미지 내에 객체가 어디에 존재하는 지 bounding box로 찾고, 찾은 위치에 해당하는 박스 내부의 객체가 실제 GT.. 공감수 0 댓글수 0 2023. 5. 18.
  • Deep Residual Learning for Image Recognition (ResNet) 논문 리뷰 및 정리 0.Abstract 역대 ILSVRC 대회 결과를 보면 depth가 모델의 성능에 큰 영향을 준다는 것을 알 수 있음 depth 증가 시 발생하는 문제 점 : overfitting, gradient 소실, 연산량 증가 residual learning framework를 통해 문제 해결 → 오차를 3.75%까지 줄임 residual learning framework : 이전 layer의 결과를 다시 이용함 1. Introduction 모델의 layer수가 증가할 수록 학습할 수 있는 Feature가 달라짐 → 깊이는 중요한 요소 “Layer를 깊게 쌓을 수록 항상 좋은 성능을 보이는가?” 두 가지 문제점 존재 Convergence Problem vanishing/exploding gradients 로부터 .. 공감수 0 댓글수 0 2023. 4. 30.
  • [Python] BOJ 10026. 적록색약 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 1. 문제 설명 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우로 인접해 있는 경우에 두 .. 공감수 0 댓글수 0 2023. 4. 29.
  • [Python] 특정 버전으로 가상환경 설치하기(virtualvenv, venv) 파이썬으로 개발하다보면 현재 사용중인 파이썬 버전이 아닌 특정한 버전에서만 사용가능한 라이브러리들을 종종 마주친다. (특히 opencv......) 가상환경을 통해 모델을 생성하고 버리는(?)식으로 하면 충돌을 최소화 할 수 있다. +) 참고로 사용중인 OS는 Mac M2입니다. 1. virtualvenv 사용 # virtualenv 가상환경 라이브러리 설치 pip install virtualvenv # 컴퓨터에 설치된 기본 파이썬 버전으로 가상환경 설치 virtualenv --python=python3.8.5 env # 가상환경 활성화 source env/bin/activate # 파이썬 버전 확인 python -V 파이썬 3.8.5로 가상환경이 잘 실행되는 것을 확인! (원래 존재하는 파이썬 버전으로.. 공감수 0 댓글수 0 2023. 4. 29.
  • [Docker] Docker에서 image 생성 본 포스팅은 NaverBoostcamp AI Tech 5기 서비스 개발 기초 강의 수강 내용을 바탕으로 작성되었습니다. 1. Docker 설치 도커 공식 홈페이지에서 운영체제에 맞는 Docker Desktop 설치 https://docs.docker.com/get-docker/ Get Docker docs.docker.com 2. 터미널에서 docker 커맨드가 동작하는 지 확인 위와 같은 화면이 나온다면 잘 설치 된것 3. 프로젝트 setting - Pytorch 코드 실행을 위한 docker image 를 생성해보고자 함 # 폴더 생성 mkdir [폴더명] # 생성한 폴더로 이동 cd [폴더명] # 파이썬 버전 확인 : 충돌 안나게 설정 잘해야함 python -V poetry init poetry a.. 공감수 0 댓글수 0 2023. 4. 29.
  • ImageNet Classification with Deep Convolutional Neural Networks 논문 리뷰 및 정리 딥러닝의 기초 논문이라고 할 수 있는 ImageNet Classification with Deep Convolutional Neural Networks (AlexNet) 를 리뷰해 보려고 한다. Link : https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf 0. Abstract ImageNet LSVRC-2010 대회에서 120만 개의 고해상도 이미지를 1000개의 다른 클래스로 분류하기 위해 대규모의 심층 컨볼루션 신경망을 훈련시킴 top1, top5 오류율은 각각 37.5%, 17.0%의 오류율을 달성함 (이전보다 상당히 발전) 매우 효율적인 GPU 사용 오버 피팅을 방지하기 위해 새로운 방.. 공감수 0 댓글수 0 2023. 4. 24.
  • 네이버 부스트캠프 AI Tech 5기 합격 후기 지원 동기 산업 공학을 전공하며 통계와 데이터 사이언스를 공부하면서 ADP, 빅데이터 분석기사 등등 공부하면서 데이터 사이언티스트가 되고싶었지만 딱히 뚜렷한 목표의식도 없고.. 이력서에 쓸만한 대단한 프로젝트도 없어서 졸업 후에 뭐하고 살지 고민이 많았다. 작년에 휴학하고 알체라 데이터 사이언스 부서에서 계약직으로 근무하며 여기서 만들어진 데이터는 어떤식으로 모델을 만드는 데에 활용이 되는 지 궁금했고, Computer Vision 분야에서 사용되는 모델은 바로바로 눈에 보이는 결과물을 만들어 낼 수 있다는 점에서 큰 흥미를 느꼈다. 그러던 중 네이버 부스트캠프의 체계적인 교육 커리큘럼을 보고 바로 지원을 결심했다. 모집 절차 1) 서류전형 문항은 총 다섯 문항으로 이루어져 있었으며 지원 동기, 프로젝트.. 공감수 2 댓글수 0 2023. 4. 24.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (다리를 지나는 트럭) 1. 문제 설명 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 따라서, 모든 트럭이 다리를 지나려면 최소 8초가 걸립니다. solution 함수의 매개변수로 다리에 올라갈 수 있는 트럭 수 bridge_length, 다리가 견딜 .. 공감수 0 댓글수 0 2023. 1. 25.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (124나라의 숫자) 1. 문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법124 나라10진법124 나라 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요. 2. 제한사항 n은 50,000,000이하의 자연수 입니다. 3. 내 풀이 def solution(n): answer = '' nums = [1,2,4] while n > 0: n -= 1 n, v = divmod(n,3) answe.. 공감수 0 댓글수 0 2023. 1. 25.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (큰 수 만들기) 1. 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 2. 제한 조건 number는 2자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 3. 다른 사람 풀이 def solution(numbe.. 공감수 0 댓글수 0 2023. 1. 25.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (소수찾기) 1. 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 2. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 3. 내 풀이 import math from itertools import permutations def primenumber(x): if x == 0 or x == 1: return False .. 공감수 0 댓글수 0 2023. 1. 24.
  • [Python] 프로그래머스 코딩테스트 연습 level3 (숫자 게임) 1. 문제 설명 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 자연수를 하나씩 부여받습니다. 각 사원은 딱 한 번씩 경기를 합니다. 각 경기당 A팀에서 한 사원이, B팀에서 한 사원이 나와 서로의 수를 공개합니다. 그때 숫자가 큰 쪽이 승리하게 되고, 승리한 사원이 속한 팀은 승점을 1점 얻게 됩니다. 만약 숫자가 같다면 누구도 승점을 얻지 않습니다. 전체 사원들은 우선 무작위로 자연수를 하나씩 부여받았습니다. 그다음 A팀은 빠르게 출전순서를 정했고 자신들의 출전 순서를 B팀에게 공개해버렸습니다. B팀은 그것을 보고 자신들의 최종 승점을 가장 높이는 방법.. 공감수 0 댓글수 0 2023. 1. 24.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (땅따먹기) 1. 문제 설명 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 예를 들면, | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 로 땅이 주어졌다면, 1행에서 네번째 칸 (5)를 밟았으면, 2행의 네번째 칸 (8)은 밟을 수 없습니다. 마지막 행까지 모두 내려왔을 때, 얻을 수 있는 점수의 최대값을 return하는 solution 함수를 완성해 주세요. 위 예의 경우, 1행의 네번째.. 공감수 0 댓글수 0 2023. 1. 23.
  • [Python] 프로그래머스 코딩테스트 연습 level3 (단속카메라) 1. 문제 설명 고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다. 고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는지를 return 하도록 solution 함수를 완성하세요. 2. 제한사항 차량의 대수는 1대 이상 10,000대 이하입니다. routes에는 차량의 이동 경로가 포함되어 있으며 routes[i][0]에는 i번째 차량이 고속도로에 진입한 지점, routes[i][1]에는 i번째 차량이 고속도로에서 나간 지점이 적혀 있습니다. 차량의 진입/진출 지점에 카메라가 설치되어 있어도 카메라를 만난것으로 간주합니다. 차량의 진입.. 공감수 0 댓글수 0 2023. 1. 23.
  • [Python] 프로그래머스 코딩테스트 연습 level1 (옹알이(2)) 1. 문제 설명 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 2. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 30 문자열은 알파벳 소문자로만 이루어져 있습니다. 3. 내 풀이 def solution(babbling): answer = 0 b_list = ["aya", "ye", "woo", "ma"] b_list2 .. 공감수 0 댓글수 0 2023. 1. 23.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (2 x n 타일링) 1. 문제 설명 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 다음과 같이 2가지 방법이 있습니다. 타일을 가로로 배치 하는 경우 타일을 세로로 배치 하는 경우 예를들어서 n이 7인 직사각형은 다음과 같이 채울 수 있습니다. 직사각형의 가로의 길이 n이 매개변수로 주어질 때, 이 직사각형을 채우는 방법의 수를 return 하는 solution 함수를 완성해주세요. 2. 제한사항 가로의 길이 n은 60,000이하의 자연수 입니다. 경우의 수가 많아 질 수 있으므로, 경우의 수를 1,000,000,007으로 나눈 나머지를 return해주세요. 입출력 예 설명 입출력 .. 공감수 0 댓글수 0 2023. 1. 22.
  • [Python] 프로그래머스 코딩테스트 연습 level3 (네트워크) 1. 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 2. 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 comp.. 공감수 0 댓글수 0 2023. 1. 22.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (스킬트리) 1. 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요. 2. .. 공감수 0 댓글수 0 2023. 1. 19.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (주식가격) 1. 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 2. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 3. 내 풀이 from collections import deque def solution(prices): answer = [] prices = deque(prices) n_prices = len(prices) for i in range(n_prices-1): n = prices.popleft() answer.append(n_prices-i-1) for idx,j in enumer.. 공감수 0 댓글수 0 2023. 1. 19.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (가장 큰 수) 1. 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 2. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 3. 내 풀이 def solution(nu.. 공감수 0 댓글수 0 2023. 1. 19.
  • [Python] 프로그래머스 코딩테스트 연습 level2 ([1차] 캐시) 1. 문제 설명 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다. 어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 프로그램을 작성하시오. 입력 형식 캐.. 공감수 0 댓글수 0 2023. 1. 19.
  • [Python] 프로그래머스 코딩테스트 연습 level3 (최고의 집합) 1. 문제 설명 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만족하면서 각 원소의 곱 이 최대가 되는 집합 예를 들어서 자연수 2개로 이루어진 집합 중 합이 9가 되는 집합은 다음과 같이 4개가 있습니다. { 1, 8 }, { 2, 7 }, { 3, 6 }, { 4, 5 } 그중 각 원소의 곱이 최대인 { 4, 5 }가 최고의 집합입니다. 집합의 원소의 개수 n과 모든 원소들의 합 s가 매개변수로 주어질 때, 최고의 집합을 return 하는 solution 함수를 완성해주세요. 2. 제한사항 최고의 집합은 오름차순으로 정렬된 1차원 배열(list,.. 공감수 0 댓글수 0 2023. 1. 18.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (방문 길이) 1. 문제 설명 게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다. U: 위쪽으로 한 칸 가기 D: 아래쪽으로 한 칸 가기 R: 오른쪽으로 한 칸 가기 L: 왼쪽으로 한 칸 가기 캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 이루어져 있습니다. 예를 들어, "ULURRDLLU"로 명령했다면 1번 명령어부터 7번 명령어까지 다음과 같이 움직입니다. 8번 명령어부터 9번 명령어까지 다음과 같이 움직입니다. 이때, 우리는 게임 캐릭터가 지나간 길 중 캐릭터가 처음 걸어본 길의 길이를 구하려고 합니다. 예를 들어 위의 예시에서 게임 캐릭터가 움직인 길이는 9이.. 공감수 0 댓글수 0 2023. 1. 17.
  • [Python] 프로그래머스 코딩테스트 연습 level 3 (야근 지수) 1. 문제 설명 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요. 2. 제한 사항 works는 길이 1 이상, 20,000 이하인 배열입니다. works의 원소는 50000 이하인 자연수입니다. n은 1,000,000 이하인 자연수입니다. 3. 내 풀이 import heapq def solution(n, works): works... 공감수 0 댓글수 0 2023. 1. 17.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (베스트앨범) 1. 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 2. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생.. 공감수 0 댓글수 0 2023. 1. 12.
  • [Python] 프로그래머스 코딩테스트 연습 level2 (줄서는 방법) 1. 문제 설명 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람이 있다면 다음과 같이 6개의 방법이 있습니다. [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 사람의 수 n과, 자연수 k가 주어질 때, 사람을 나열 하는 방법을 사전 순으로 나열 했을 때, k번째 방법을 return하는 solution 함수를 완성해주세요. 2.제한사항 n은 20이하의 자연수 입니다. k는 n! 이하의 자연수 입니다. 3. 내 풀이 from math import factorial def solution(n, k): ans.. 공감수 1 댓글수 1 2023. 1. 11.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.