본문 바로가기

전체 글

(253)
프로그래머스) 개인정보 수집 유효기간 -python https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1..
프로그래머스) 게임 맵 최단거리 -python https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전형적인 BFS 문제다 from collections import deque def solution(maps): answer = 0 col = len(maps) row = len(maps[0]) queue = deque() queue.append((0,0)) dx = [1,-1,0,0] dy = [0,0,-1,1] while queue: x,y = queue.popleft() for i in ran..
프로그래머스)타겟 넘버 - python https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제는 간단하다 numbers에 숫자들을 모두 더하거나 빼서 target과 같은 숫자를 만들고, 그 경우의 수를 리턴하는 것이다 처음 봤을 때부터 무슨 알고리즘을 써야할지 감도 오지 않았다. 몇시간을 고민했고 검색 끝에 dfs라는 것을 알았으나 정답 코드를 봐도 이해가 되질 않았다 이 한 문제만으로 삼일동안 끙끙 앓아왔고 겨우 이해할 수 있었다. def solution(numbers, target..
백준 1026) 보물 -python https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0] × B[0] + ... + A[N-1] × B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력..
프로그래머스) 푸드 파이트 대회 -python https://school.programmers.co.kr/learn/courses/30/lessons/134240\ 문제는 간단하다. 준비된 음식의 갯수가 담긴 리스트 food가 주어지고(0번째는 물) 각 음식은 공평하게 둘로 나뉘어 진다. def solution(food): answer = '' water = [0] second = [] first = [] food.pop(0) for i in range(1,len(food)+1): a = food[i-1] // 2 for j in range(1,a+1): first.append(i) second.insert(0,i) answer = first + water + second return ''.join(str(s) for s in answer)
프로그래머스) 명예의 전당(1) - python https://school.programmers.co.kr/learn/courses/30/lessons/138477 문제가 좀 긴데, 요약하자면 len(score)의 수 만큼 가수가 존재하고, 각 가수는 해당되는데 index+1 날짜에 공연을 하게되어 관객들로부터 점수를 얻게된다. 그 점수는 명예의 전당의 최소 수와 비교되어 만일 해당 날짜에 공연한 가수의 점수가 더 크다면, 당일날 공연한 가수의 점수는 명예의 전당에 오르게 된다. 즉, k = 2, score=[1,2,3,4]라고 했을 때, score의 index로 말하자면 0번째 날 --> 명예의 전당에 아무도 등록되지 않았으므로 명예의 전당에 1이 올라간다 1번째 날 --> 아직 명예의 전당에 k수 만큼 등록된 점수가 없으므로 2가 등록된다 2번째 ..
프로그래머스)과일장수 -python https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 문제 자체는 그리 어렵지 않았다. 단지 주어진 변수 개수가 많아서 헷갈렸기에 다른 lv.1 문제들보다 시간이 좀 더 걸렸다. def solution(k, m, score): answer = 0 score.sort(reverse=True) arr = [] for i in range(0,len(score),m): a = score[i:i+m] if len(a) == m: answer += mi..
프로그래머스) 크기가 작은 부분문자열 -python https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 코드 def solution(t, p): answer = 0 leng = len(p) p = int(p) for i in range(0,len(t) -leng+1, +1): a = t[i:i + leng] a = int(a) if a
백준 7568)덩치 -python https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 설명은 길었지만 짧게 요약하자면, A 의[몸무게,키] B 의[몸무게,키] A의 몸무게와 키 둘 모두가 B의 그것와 크다면 A는 B보다 덩치가 크다 할 수 있다. 만일 둘 중 하나라도 작으면 A는 B보다 덩치가 크다고 할 수 없다. 핵심은 "A의 몸무게와 키 둘 모두가 B의 그것와 크다면 A는 B보다 덩치가 크다 할 수 있다" 이 문항이다. 즉 등수가 올라가는 경우는 몸무게와 키 모두가..
use-query)useInfiniteQuery를 사용해보자. 작업 도중 데이터가 누적되어 쌓일 경우 데이터를 가져오는 것에서 시간이 걸릴 것을 예상해 Infinity Scroll를 구현하려 한다. 원래라면 Debounce 등을 이용해 구현했겠지만, 이미 해당 기능에 대한 라이브러리가 존재했었고, 친절한 Tanstack팀은 use-query에 무한 스크롤 기능까지 만들어두었었다. 우선 use-query의 Infinite Scroll 기능인 useInfiniteQuery는 다음과 같은 형태를 띈다. const {data, isLoading, ..., fetchNextPage} = useInfiniteQuery(key,QueryFn, { ...Options, getNextPageParam:(lastPage, pages) =>{ return lastPage.nextPag..
use-query) queryClient.invalidateQueries가 동작하지 않을 때. useQuery와 useMutation을 사용하던 중, 에러가 발생했다. 에러는 Mutation이후 queryClient.invalidateQueries가 동작하지 않아 useQuery가 실행되지 않는 것. Mutation을 사용할 기능은 이미지를 저장하는 기능인데, 이미지를 File base로 변환 후 post를 보내면, mutation이후 get이 요청되는 것이 아니라, get요청 이후 post가 들어간다. 우선 queryClient.invalidateQueries가 동작하지 않는 몇몇 경우를 살펴보자 1.enabled를 사용했을때. 2. 오타 등의 이유로 Key값이 다를 때. 3.리렌더링 과정에서 queryClient가 stable하지 않을 때. 1,2,3)-https://stackoverflow...
프로그래머스 피로도 - python 알고리즘은 여태 찍먹하면서 공부했지만 각잡고 공부를 시작한지는 이제 막 하루다. 각설하고, 이번 알고리즘 문제는 프로그래머스의 완전탐색 문제다. https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 문제를 접했을 때, 최소피로도 - 소모피로도를 기준으로 정렬하여 풀면 된다고 생각했다. def solution(k, dungeons): answer = 0 for i in range(len(dungeons)): a = dungeons[i][0] - ..
환영합니다! #1 글을 작성하고 블로그를 관리해보세요. 님의 회원 가입을 진심으로 축하합니다. 이 글은 비공개로 작성돼 있습니다. '편집'으로 내용을 바꾸시거나, 삭제 후 '새 글을 작성'하셔도 됩니다. 글 뿐만 아니라 블로그의 각종 설정을 변경할 수도 있습니다. '블로그관리'를 확인해보세요. #2 다양한 스킨이 있어요. 티스토리에 있는 다양한 '스킨'도 살펴 보세요. 블로그나 사이트를 사용하는 목적에 맞게 스킨을 고를 수 있습니다. 어떤 이야기를 주로 하실 건가요? 잘 생각해 보시고, 마음에 드는 스킨을 고르세요. '스킨 편집'을 통해 다양한 커스텀, 그리고 홈 꾸미기를 적용하실 수도 있답니다. #3 포럼에서 사람들과 소통하세요. 마지막으로 사용하시다가 티스토리에 대해 궁금한 내용이 있다면 '포럼'을 확인하세요. ..