프론트엔드 개발자 중규리 입니다 ദി ᷇ᵕ ᷆ ) 자세히보기

전체 글 115

백준 1174 줄어드는 수 Python

🐸 문제 정보 1174번: 줄어드는 수 음이 아닌 정수를 십진법으로 표기했을 때, 왼쪽에서부터 자리수가 감소할 때, 그 수를 줄어드는 수라고 한다. 예를 들어, 321와 950은 줄어드는 수이고, 322와 958은 아니다. N번째로 작은 줄어드는 www.acmicpc.net 🤖 알고리즘 백트래킹 ⏱️ 풀이 시간 60m+ 📝 풀이 백트래킹을 오랜만에 풀어서 그런가 생각보다 어렵게 느껴지는 문제였다. 임시 배열을 두고, 가장 마지막 숫자와 비교하여 넣을 수 있는 수 들을 하나씩 채워나가면 풀 수 있었다. 🧑‍💻 나의 답 # pypy3 import sys input = sys.stdin.readline n = int(input().rstrip()) temps = [] def bt(): if temps: res..

PS/문제풀이 2024.01.08

백준 1166 선물 Python

🐸 문제 정보 1166번: 선물 민식이는 아이들에게 선물할 같은 크기의 작은 박스를 N개 가지고 있다. 모든 작은 박스는 정육면체이고, 크기는 A × A × A 이다. 민식이는 이 작은 박스를 크기가 L × W × H 인 직육면체 박스에 www.acmicpc.net 🤖 알고리즘 이분탐색 ⏱️ 풀이 시간 26.04m 📝 풀이 처음에 수학 문제라고 확신하고 풀었다. 이유는 (L / A) * (W / A) * (H / A) = N인 경우의 A 값을 찾으면 되니까... 하고 풀었으나 실패. 결국 검색의 힘을 빌렸고, 이분탐색 문제인 것을 알았다. start는 0, end는 L, W, H 중 가장 큰 값을 선택 end의 최대 값과 비교했을 때 반복문 100번 정도 돌리기 가능 (2 ^ 100) 블럭 개수는 (L ..

PS/문제풀이 2024.01.08

백준 2512 예산 Python

🐸 문제 정보 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 🤖 알고리즘 이분탐색 (이지만 나는 그리디로 풀었..다) ⏱️ 풀이 시간 10.58m 📝 풀이 유형은 이분 탐색이었지만, 문제를 봤을 때 이분탐색보다 그리디가 먼저 떠올랐다. 이분탐색 풀이도 아래에 있다. 입력 값을 오름차순으로 정렬 (현재까지 남은 값 / 남은 인원)과 현재 보고있는 값을 비교한다 만약 현재 보고 있는 값이 더 작다면, 예산 최대 값에서 현재 보고 있는 값을 빼고 res와 뺀 값을 비교한다 반대의 경우, (현재까지 남은 값 ..

PS/문제풀이 2024.01.07

백준 17266 어두운 굴다리 Python

🐸 문제 정보 17266번: 어두운 굴다리 인하대학교 후문 뒤쪽에는 어두운 굴다리가 있다. 겁쟁이 상빈이는 길이 조금이라도 어둡다면 가지 않는다. 따라서 굴다리로 가면 최단거리로 집까지 갈수 있지만, 굴다리는 어둡기 때문에 빙 www.acmicpc.net 🤖 알고리즘 구현 ⏱️ 풀이 시간 29.04m 📝 풀이 실버 4 문제였음에도 초반에 구현 방법을 잘못 설정하여 시간이 오래 걸렸다. 왼쪽 가로등과 비교하는 형식으로 구현했다가, 이렇게 되면 오른쪽 가로등과의 최적의 길이를 구할 수 없었다. 고친 풀이 방법은 아래와 같다. 가로등 시작 위치와 끝 위치는 각각 0과 m과 차이를 비교해야함 두 번째 가로등부터는 이전 가로등과 사이의 중간 값을 올림하여, 현재 저장된 가로등과 최대값으로 갱신 🧑‍💻 나의 답 #..

PS/문제풀이 2024.01.07

백준 3165 5 Python

🐸 문제 정보 3165번: 5 N과 K가 주어졌을 때, N보다 크면서 5가 적어도 K번 포함되는 가장 작은 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 🤖 알고리즘 그리디 백트래킹 ⏱️ 풀이 시간 60m+ 📝 풀이 사실 완벽하게 풀이하지 못한 문제이다. 질문이 엄청 깔끔하고, 이해하기 쉬운 반면... 정말 엄청나게 틀렸다. 사실 아직까지 틀린 이유를 모르겠다. 기존에 풀이 방식은 아래와 같았다. (num은 n + 1을 리스트로 바꾼 변수, idx는 -1) 백트래킹 함수 내에서 5가 k개 이상이면 멈추도록 함 num[idx]가 5라면 백트래킹 함수를 재귀하는데, idx 값을 -1 해줌 자리수를 넘겨주기 위해서 num[idx]가 5보다 작은 경우, 5로 만들고 idx 값을 -1 하여 재귀..

PS/문제풀이 2024.01.06

백준 15724 주지수 Python

🐸 문제 정보 15724번: 주지수 네모 왕국의 왕인 진경대왕은 왕국의 영토를 편하게 통치하기 위해서 1X1의 단위 구역을 여러 개 묶어서 하나의 거대 행정구역인 주지수(州地數, 마을의 땅을 셈)를 만들 예정이다. 진경대왕은 www.acmicpc.net 🤖 알고리즘 DP ⏱️ 풀이 시간 43.56m 📝 풀이 처음에 당연히 BFS라고 생각하고 푸는 바람에 어마어마하게 시간이 소요됐다. 이후에 DP + 누적합인 것을 알았음에도 풀이 방법이 바로 떠오르지 않았다. 사실 DP 문제들 중에서는 점화식을 찾기 쉬운 편의 문제였음에도 이렇게 시간이 오래 걸린다는 것은... DP에 대한 연습이 부족하다는 것은 당연하고, DP는 연습해도 실전에서 못풀 가능성이 높다는게 무슨 소리인지 느낄 수 있었다. 누적합으로 (0,0..

PS/문제풀이 2024.01.06

백준 13305 주유소 Python

🐸 문제 정보 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 🤖 알고리즘 그리디 ⏱️ 풀이 시간 06.23m 📝 풀이 보자마자 그리디 같다고 느껴졌다. 도시를 정방향으로 순회하면서, 주유소 리터 당 값의 최소값을 새로 갱신해준다. 현재까지 나온 리터 당 최소 값을 다음 도시로 이동하는 거리만큼 곱해서 더해준다. 간단한 그리디 문제였다. 🧑‍💻 나의 답 # pypy3 import sys input = sys.stdin.readline INF = sys.maxsize n = int(input().r..

PS/문제풀이 2024.01.06

[에러 해결] Next.js에서 새로고침 시 404: This page could not be found 발생 원인과 해결 방법

🚨 에러 종류 Next.js(SSR)에서 새로고침 시, 404 페이지로 자동 리다이렉션 되는 문제 404: This page could not be found 발생 환경 Next.js 13.5.4 원인과 해결 방법 원인은 Next.js가 기본적으로 후행에 슬래쉬를 제거하기 때문입니다. 이것을 트레일링 슬래시 (trailing slash) 라고 합니다. 웹에서는 후행 슬래시가 붙어있다면 디렉토리로 인식합니다. 하지만 Next.js에서는 이 후행 슬래시를 자동으로 제거하며 해당 경로가 페이지라고 인식하는 것이죠. 저희 프로젝트에서는 후행 슬래시를 제거하여 리다이렉션할 필요가 없기 때문에, 공식 문서에서 설명하는 해결책을 적용했습니다. PWA가 적용되어있는 파일이지만, 구조 자체는 동일합니다. module 부..

개발/frontend 2024.01.04

프로그래머스 SQL 오프라인/온라인 판매 데이터 통합하기

🐸 문제 정보 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🤖 알고리즘 SQL ⏱️ 풀이 시간 - 📝 풀이 처음에 같은 상품에 대해서 합치는 건줄 알고 조금 헤맸다. 각 테이블에서 해당 조건으로 SELECT하고 UNION으로 합하면 되는 문제였다. 🧑‍💻 나의 답 (SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE WHERE YEAR(SALES_DATE) = 2022 AND MONTH(SALES_DATE) = ..

PS/문제풀이 2024.01.04