전체 글

주저리주저리
알고리즘/Python

[python] 프로그래머스 - 더 맵게

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr Heap을 사용하면 금방 풀리는데 분석하는데 오래 걸렸다. 우선순위 Queue를 사용해서 풀기도 하던데 그건 안해봄 더보기 첫 번째 풀이 : Heap 사용 def solution(scoville, K): import heapq min_heap = [] for i in scoville: heapq.heappush..

알고리즘/Python

[python] 프로그래머스 - 주식 가격

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42584 문제 설명이 왜 다 이렇지. 문제 자체가 좀 어거지로 만든 느낌이 있어서 설명하려고 해도 좀 곤란할 것 같긴 하다. 예제보면서 이해하는게 답인 듯. 더보기 첫 번째 풀이 : 이중 for문 def solution(prices): answer = [] for index in range(len(prices) - 1): count = 0 for index2 in range(index + 1, len(prices)): if prices[index] 0 else -1 now_price = prices[time] if len(stack) == 0 or prev_price 0 a..

알고리즘/Python

[python] 프로그래머스 - 기능 개발

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42586 스택 & 큐 부분에 있는 문제인데, 스택&큐를 썼다고 할 수 있을까? 싶긴하다. 사실 스택&큐 부분 문제는 스택&큐의 특성을 이용하는 구현 문제(피지컬 문제)에 가까운 듯 하다. 더보기 더보기 풀이 def solution(progresses, speeds): answer = [] while True: if len(progresses) == 0: break for index in range(len(progresses)): progresses[index] += speeds[index] if progresses[0] >= 100: count = 0 while True: ..

알고리즘/Python

[python] 프로그래머스 - 다리를 지나는 트럭

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42583 트럭은 뚠뚠 오늘도 뚠뚠.. 1일 1문제인데...이 문제 고민하는데 시간을 너무 써서 늦었다. 그리고 수강신청도 망해서 멘탈이 나가있던터라 미뤘다. ㅎ '나 진짜 이런 문제 못 푸는구나' 깨달은 문제이다. 풀려고 봤을 때 머릿 속이 엄청 복잡해지면서 막막했다. 막 다양한 부분에서 다양한 방법들이 떠오르면서 어떤 방식을 선택해서 풀어야 효율적으로 풀릴지 그리고 그런 방법을 코드상에서 어떻게 구현하면 좋을지 바로 그려지지 않으니 시작을 하지 못했다. 예전 수능 공부 할 때, 수학 문제에서도 문제를 어떻게 풀어나가야하는지 생각하는 과정에서 너무 여러가지 방법이 떠오르고 ..

알고리즘/Python

[python] 프로그래머스 - 위장

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 왜 옷을 다 안 입니. 바바리맨도 아니고. 정말 단순한 생각이 문제 풀이의 실마리. 더보기 첫 번째 풀이 : 테스트 케이스1 시간 초과 from itertools import combinations def solution(clothes): closet = {} answer = 0 for cloth in clothes: if cloth[1] not in closet: closet[cloth[1]] = 1 else: closet[cloth[1]] += 1 for category in range(len(closet..

알고리즘/Python

[python] 프로그래머스 - 전화번호 목록

출처 : 프로그래머스, https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr LV2로 들어오니까 별 생각 없이 풀면 되던 LV1에 비해 갑자기 난이도가 확 상승한 느낌이라 LV2를 본격적으로 풀어보기 전에 코딩테스트 고득점 Kit에서 분야별로 정해서 LV2까지 문제를 모두 풀어보고 LV2 문제를 풀어보려고 계획을 잡고, 해싱부터 시작하였다. 접두사랑 접두어라는 용어가 나오는데 접두사 : 어떤 단어의 앞에 붙어 ..

Frontend/React

[React] useAxios

본 글은 노마더 코더의 실전형 리액트 Hooks 10개 강의를 들으며 작성한 글입니다. useAxios 이번에 주식 시세 프로젝트를 하면서 axios로 API를 호출해야 할 일이 생겼는데, 어떻게 API 호출을 좀 더 깔끔하게 할 수 없을까? 고민하다가 노마드코더에서 Hooks 강의를 들을 때 보았던 useAxios를 사용해볼 수 없을까 싶어서 정리할 겸 작성한다. import React from "react"; import ReactDOM from "react-dom"; import useAxios from "./useAxios"; const App = () => { const { refetch, loading, data, error } = useAxios({ url: "API 호출 주소" }); re..

알고리즘/Python

[python] 프로그래머스 - 나머지가 1이 되는 수 찾기

출처 : https://programmers.co.kr/learn/courses/30/lessons/87389 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 더보기 #구하려는 수에 -1한 수의 약수 중 1을 제외하고 가장 작은 수를 return from math import sqrt def isDivider(dividend): for i in range(2, int(sqrt(dividend)) + 1): if dividend % i == 0: return i d..

Frontend/상태관리

[Redux toolkit] createSlice

본 글은 노마더코더의 초보자를 위한 리덕스 101 강의를 들으며 작성한 글입니다. createSlice 더보기 const addToDo = createAction("ADD"); const deleteToDo = createAction("DELETE"); const reducer = createReducer([], { [addToDo]: (state, action) => { state.push({ text: action.payload, id: Date.now() }); }, [deleteToDo]: (state, action) => state.filter((toDo) => toDo.id !== action.payload), }); createSlice는 reducer뿐만 아니라 action도 자동으로 생성..

Frontend/상태관리

[Redux Toolkit] ConfigureStore

본 글은 노마더코더의 초보자를 위한 리덕스 101 강의를 들으며 작성한 글입니다. configureStore const store = configureStore({ reducer }); configureStore는 createStore와 비슷하게 쓰이지만 중간에서 Redux DevTools를 이용할 수 있게 해준다. Redux DevTools를 이용하면 Redux의 내부 상태 및 히스토리를 직접 볼 수 있게 된다. 사실 Redux Toolkit이 없어도 Redux DevTools은 사용할 수 있다. 자동으로 켜주는게 다를 뿐. 어쨌든 Redux Developer Tool을 설치하려면 - Redux DevTools Extension : Github GitHub - zalmoxisus/redux-devtoo..

Frontend/상태관리

[Redux Toolkit] createReducer

본 글은 노마더코더의 초보자를 위한 리덕스 101 강의를 들으며 작성한 글입니다. createReducer 더보기 const reducer = (state = [], action) => { switch (action.type) { case addToDo.type: console.log(action); return [{ text: action.payload, id: Date.now() }, ...state]; case deleteToDo.type: return state.filter((toDo) => toDo.id !== action.payload); default: return state; } }; createReducer는 말 그대로 reducer를 만들어주는 함수이고, reducer를 작성하는데 코드..

Frontend/상태관리

[Redux Toolkit] createAction

본 글은 노마더코더의 초보자를 위한 리덕스 101 강의를 들으며 작성한 글입니다. Redux Toolkit 사람들은 Redux를 사용할 때 많은 코드를 적어야 하는 것이 불편하다고 느꼈고, 이에 보완책으로 나온 것이 Redux Toolkit이다. 즉, Redux Toolkit은 더 적은 코드로 Redux와 같은 일을 행하게 해주는 Package이다. npm install @reduxjs/toolkit createAction 더보기 const ADD = "ADD"; const DELETE = "DELETE"; const addToDo = (text) => { return { type: ADD, text, }; }; const deleteToDo = (id) => { return { type: DELETE,..

제주도랏맨
제주도랏맨의 블로그