본문 바로가기
프로그래머스 2022 KAKAO BLIND RECRUITMENT '주차 요금 계산' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ (전략) 주차 요금을 나타내는 정수 배열 fees, 자동차의 입/출차 내역을 나타내는 문자열 배열 records가 매개변수로 주어집니다. 차량 번호가 작은 자동차부터 청구할 주차 요금을 차례대로 정수 배열에 담아서 return 하도록 solution 함수를 완성해주세요. """ import math def solution(fees, records): sales = {} for record in records: time, vnum, info = record.split() hour, minute = map.. 2023. 2. 24.
Fast API 공부해보기 #4 body 사용하여 데이터 주고 받기 Fast API 공부해보기 #3 pydantic, query, request body Fast API 공부해보기 #2 경로 동작 생성 Fast API 공부해보기 #1 특징 및 설치 백엔드로 Django, flask만 사용하다가 가볍게 사용하기에 Fast API도 좋다고 하여 한번 공부해보려고 한다. 주요 특징은 다음과 beomcoder.tistory.com body에 대해서 조금더 자세하게 공부해보려 한다. from typing import Union from fastapi import FastAPI, Path from pydantic import BaseModel app = FastAPI() # FastAPI()를 app이라는 이름으로 사용한다. class Item(BaseModel): # pydant.. 2023. 2. 23.
프로그래머스 '멀리 뛰기' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 ret.. 2023. 2. 23.
Fast API 공부해보기 #3 pydantic, query, request body Fast API 공부해보기 #2 경로 동작 생성 Fast API 공부해보기 #1 특징 및 설치 백엔드로 Django, flask만 사용하다가 가볍게 사용하기에 Fast API도 좋다고 하여 한번 공부해보려고 한다. 주요 특징은 다음과 같다고 한다. 우선은 라이브러리를 beomcoder.tistory.com REST API형식으로 한번 사용해보려고 한다. 먼저 pydantic을 알아야 한다. pydantic은 타입 애너테이션을 사용해서 데이터를 검증하고 설정들을 관리하는 라이브러리이다. pydantic은 런타임 환경에서 타입을 강제하고 타입이 유효하지 않을 때 에러를 발생시켜준다. FastAPI, Project Jupyter, Microsoft, AWS 등 많은 곳에서 사용된다. from typing im.. 2023. 2. 23.
Fast API 공부해보기 #2 경로 동작 생성 Fast API 공부해보기 #1 특징 및 설치 백엔드로 Django, flask만 사용하다가 가볍게 사용하기에 Fast API도 좋다고 하여 한번 공부해보려고 한다. 주요 특징은 다음과 같다고 한다. 우선은 라이브러리를 설치해주었다. from fastapi import FastAPI beomcoder.tistory.com from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} 여기서 동작은 '/' 다음에 오는 부분을 말한다. https://example.com/items/foo 에서 /items/foo 를 경로라고 말한다. from fastapi import Fas.. 2023. 2. 22.
Fast API 공부해보기 #1 특징 및 설치 백엔드로 Django, flask만 사용하다가 가볍게 사용하기에 Fast API도 좋다고 하여 한번 공부해보려고 한다. 주요 특징은 다음과 같다고 한다. 우선은 라이브러리를 설치해주었다. from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} 그리고 main.py를 만들어서 코드를 입력해보면 된다. 가장 기본적인 코드라고 한다. 그리고 터미널에 uvicorn main:app --reload 을 입력하면 된다. 예제대로 만들지 않았다면 조금 다르다. study.py로 만들었다면 uvicorn study:app --reload이고, app = FastAPI()를 my_.. 2023. 2. 22.
프로그래머스 2018 KAKAO BLIND RECRUITMENT[1차] '뉴스 클러스터링' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 자카드 유사도는 집합 간의 유사도를 검사하는 여러 방법 중의 하나로 알려져 있다. 두 집합 A, B 사이의 자카드 유사도 J(A, B)는 두 집합의 교집합 크기를 두 집합의 합집합 크기로 나눈 값으로 정의된다. 예를 들어 집합 A = {1.. 2023. 2. 22.
프로그래머스 '최고의 집합' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 1. 각 원소의 합이 S가 되는 수의 집합 2. 위 조건을 만족하면서 각 원소의 곱 이 최대가 되는 집합 예를 들어서 자연수 2개로 이루어진 집합 중 합이 9가 되는 집합은 다음과 같이 4개가 있습니다. { 1, 8 }, { 2, 7 }, { 3, 6 }, { 4, 5 } 그중 각 원소의 곱이 최대인 { 4, 5 }가 최고의 집합입니다. 집합의 원소.. 2023. 2. 22.
프로그래머스 2018 KAKAO BLIND RECRUITMENT[1차] '캐시' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지.. 2023. 2. 21.
프로그래머스 탐욕법(Greedy) '구명보트' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다. 사람들의 몸무게를 .. 2023. 2. 21.
프로그래머스 완전탐색 '카펫' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. """ def sol.. 2023. 2. 21.
프로그래머스 완전탐색 '최소직사각형' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호가로 길이세로 길이 16050 23070 36030 48040 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 .. 2023. 2. 21.
프로그래머스 '다음 큰 숫자' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. """ d.. 2023. 2. 21.
프로그래머스 '피보나치 수' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solu.. 2023. 2. 21.
프로그래머스 월간 코드 챌린지 시즌1 '이진 변환 반복하기' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에.. 2023. 2. 21.
프로그래머스 'JadenCase 문자열 만들기' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. """ def solution(s): answer = s[0].upper() for i in range(1, len(s)): if s[i-1] == ' ': answer += s[i].upper() else: answ.. 2023. 2. 21.
프로그래머스 '푸드파이트 대회' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다. (중략) """ def solution(food): answer = ['0'] length = len(fo.. 2023. 2. 20.
파이썬 기상청 단기예보 API 사용해보고 활용하기 우리 어플에서 현재 모임을 만들 때 달력에 날을 체크하여 모임 일정을 생성한다. 현재는 그냥 달력에 아무런 표시가 되어 있지 않다. 이때 달력에 해당 날짜의 날씨가 적혀있다면 날을 선정하는데 도움이 되지 않을까 싶어 생각하게 되었다. 기상청 API를 활용하여 장소를 고르면 10일까지의 날씨를 알 수 있는 중기육상예보 API를 활용하여 나타낸다. 여기까지의 아이디어는 아래 게시글을 참고하면 된다. 파이썬으로 기상청 일기예보와 날씨 API 사용하기 기상청에서 제공하는 날씨 API를 사용해보려고 한다. 현재 내가 다니고 있는 회사는 모임플래폼을 운영하고 있다. 어플에서는 모임을 만들 수 있는데 날짜와 시간, 장소를 적는다. 그러면 모임을 beomcoder.tistory.com 그리고 모임날짜가 되면 모임이 시.. 2023. 2. 20.
프로그래머스 탐욕법(greedy) '체육복' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가.. 2023. 2. 19.
프로그래머스 '시저 암호' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. """ from collections import deque def solution(s, n): big = deque([chr(i) for i in range(ord('.. 2023. 2. 19.
프로그래머스 2018 KAKAO BLIND RECRUITMENT[1차] '다트 게임' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. (중략) """ def solution(dartResult): dartResult = list(dartResult + 'E') answer = [0] num = '' for i, v i.. 2023. 2. 19.
프로그래머스 '입문' Lv.0 풀이 완료 프로그래머스에서 문제를 가끔 풀었는데 코딩테스트 입문이라는 카테고리가 있었다. 가끔 시간날때 입문은 다 풀어야겠다고 생각했는데 드디어 다 풀었다. 이제는 Lv.1을 다 풀어봐야겠다. 모르는 부분은 차근차근 공부해가면 되지 않을까 싶다. 인공지능개발을 하면 모델의 성능을 높이는데 주력을 다할 것 같았지만 아니었다. 스타트업의 장점이자 단점은 내가 할 일이 많다는 것이다. 인공지능으로 어떤걸 해야하는지조차 정해져있지 않다. 내가 스스로 이 어플에 어떤게 필요한지 찾아야 하고 대표님께 제안해야한다. 그 제안이 받아들여지면 데이터를 수집하기 위해 DB설계를 하고 프론트엔드와 상의해서 API도 설계해야한다. 명세서를 적고, 백엔드 코딩을 통해 db에 저장해야한다. 어떤 걸 더 해야할지 모르기 때문에 나는 틈틈히 .. 2023. 2. 18.
프로그래머스 '유한소수 판별하기' 파이썬 풀이 + 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. 유한소수가 되기 위한 분수의 조건은 다음과 같습니다. 기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다. 두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주세요. """ def solution(a, b): return 2 if len(str(a/b).. 2023. 2. 18.
프로그래머스 '등수 매기기' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요. """ def solution(score): total = sorted([sum(s) for s in score]+[201], reverse=True) return [total.index(sum(v)) for v in score] .. 2023. 2. 18.