전체 글

Heaon`s Blog
Algorithm/Programmers

프로그래머스 LV1 햄버거 만들기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/133502# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음에 생각한 문제풀이는 다음과 같다. "상수가 만들 수 있는 햄버거가 "1234" 이니까 ingrdient가 [2,1,1...]으로 들어오면 이걸 문자열로 바꾸고 python replace()을 통해서 "" 으로 바꿔서 count 처리하면 쉽게 풀리겠다" 그렇게 해서 문제를 풀었다. from typing import List def solution(ingredient: List[i..

Algorithm/Programmers

프로그래머스 LV1 크레인 인형 뽑기 게임

문제 https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 주어진 board에서 moves에 맞는 요소를 뽑고, 뽑은 자리는 아무 요소가 없으므로 0으로 처리한다. 그리고 뽑은 요소를 bucket에 넣는데, bucket의 길이가 0이 아니라면, 마지막 요소와 비교하여 터뜨려 주면 된다. 참고로 나는 터뜨린 횟수가 정답인 줄 알고, return 값으로 그 정답의 절반 값을 반환해 줘서 자꾸 틀렸던 것인데, 문제 지문을 읽어보면 터뜨린 횟수가 아닌..

Algorithm/Programmers

프로그래머스 LV1 달리기 경주

문제 https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 첨에 2가지 생각을 생각했다. 2개의 리스트를 만든 다음에 서로 스왑 해서 바꾸는 형식 하고과 dict 형태로 name : 등수 을 만든 다음에 처리하는 방식이다. 사실 시간 복잡도 최소로 하는 방법이 dict형을 이용하여 비교하며 처리하는 방법인 것은 알고 있었으나, 그냥 호기심으로 List로 스왑 하는 방법을 먼저 시도를 하였다. 2개의 리스트를 만든 다음에 각 등수를 스왑 하는 ..

Algorithm/Programmers

프로그래머스 LV1 둘만의 암호

문제 https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제풀이 방법은 다음과 같다. 일단 알파벳을 a - z까지 나열한 문자열 하나를 준비한다. 이를 case라고 지정한다. 해당 case에서 skip에 해당하는 요소를 제거한다. 문제 제한 사항에서 index 값이 그렇게 크지 않기 때문에, case 문자열을 넉넉하게 3 ~ 4개로 연이어 붙인다. 마지막 문장이 조금 이해가 되지 않을 것인데 아래 예를 들어 설명하겠다. 만약 abcdefg..

Algorithm/Programmers

프로그래머스 LV1 대충 만든 자판

문제 https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 키맵의 알파벳 : (최소로 누른 수 즉 index) 형식으로 dict 자료형을 만든 다음에, 이를 순회하는 형식으로 문제를 풀이하면 된다. from collections import defaultdict def solution(keymaps, targets): # 최소 숫자로 찾을 수 있는 dict형 만든다. 이를 case라고 지정한다. case = defaultdict(int) fo..

Algorithm/Programmers

프로그래머스 LV1 성격 유형 검사하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 해당 문제는 아래에 보이는 부분을 구현하면 되는 문제이다. 문제 풀이 방법은 다음과 같다. choice는 설문조사에서 왼쪽 오른쪽을 각각 [3, 2, 1, 0, 1, 2, 3] 점수만큼 부여하기 때문에, 이를 dict형으로 표현한다. 각 요소 (예 : R, T, C, F)에 점수를 부여하여 큰 값을 비교하면 됨으로 이를 dict형으로 표현한다. 각 유형검..

Algorithm/Programmers

프로그래머스 LV1 [1차] 비밀지도

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제 풀이 과정은 다음과 같다 일단 리스트 안에 있는 숫자를 이진화 한 다음 숫자가 1일 때 #으로 표현한다. #으로 나타난 배열 arr1과 arr2의 요소를 서로 비교하여 #가 하나라도 있다면 #을 나타낸다. 여기서 문제을 풀 때, 주의해야 할 점은 아래와 같다. 입력의 지도의 길이 n이다. 이진화로 바꾼 숫자가 0일 경우에는 " " 빈 공간으로 처리해야 비교할 때 쉽다. 이를 파이썬..

Algorithm/Programmers

프로그래머스 LV1 짝지어 제거하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 일단 이 문제는 자료구조 Stack의 특성을 안다면 쉽게 풀 수 있는 문제이다. 만약 Stack의 원소가 비었다면 요소를 추가하고, Stack에 요소가 있다면 Stack의 마지막 요소와 비교하여 pop()을 진행하는 형식으로 문제를 풀면 쉽게 해결할 수 있다. def solution(s): answer = [] for i in s: if len(answer) != 0 and answer..

FrameWork/Fastapi

[Fastapi] Header 매개 변수

헤더 매개변수를 Query, Path, Cookie 매개변수들과 같은 방식으로 정의 할 수 있다. from typing import Union from fastapi import FastAPI, Header app = FastAPI() @app.get("/items/") async def read_items(user_agent: Union[str, None] = Header(default=None)): return {"User-Agent": user_agent} Header는 다른 Path, Query, Cookie가 제공하는 기능 외에 자동 변환이라는 것을 제공하고 있는데 헤더에 담긴 데이터 이름들은 모두 하이픈(-)으로 되어 있는데 파이썬은 유효하게 보지 않는다. 따라서 매개변수 이름을 _ 언더스코어..

JHeaon
JHeaon 개발일지