https://www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 n*n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에서 대나무를 먹는다. 그런데 단 조건이 있다. 이 판다는 매우 욕심이 많아서 대나무를 먹고 자리를 옮기면 그 옮긴 지역에 그 전 지역보다 대나무가 많이 있어야 한다. 만약에 그런 지점이 없으면 이 판다는 불만을 가지고 단식 투쟁을 하다가 죽게 된다(-_-) 이 www.acmicpc.net [코드 - Python3] import sys sys.setrecursionlimit(10**8) input = sys.stdin.r..
https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오른쪽 위 꼭짓점의 x, y좌표값이 빈칸을 사이에 두고 차례로 주어진다. 모눈종이의 왼쪽 아래 꼭짓점의 좌표는 (0,0)이고, 오른쪽 위 꼭짓점의 좌표는(N,M)이다. 입력되는 K개의 직사각형들이 모눈종이 전체를 채우는 경우는 없다. www.acmicpc.net [풀이] BFS로 풀었다. 처음 문제를 접근했을 때, BFS보다 DFS를 떠올랐다. BFS로 하게되면 인접한 부분의 카운트횟수가 같기때문이다. 나중에..
https://programmers.co.kr/learn/courses/30/lessons/43238?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] 이게 왜 이분탐색 알고리즘으로 분류될까? 라는 생각밖에 안들었고 문제를 딱봤을 때 이분탐색으로 어떻게 풀어야될지 감이 안잡혀서 작성코드를 제외하고, 푼사람들의 풀이과정을 살펴봤다. 여러풀이들이 있지만, 그나마 나에게 이해가 되는 풀이는 아래 블로그의 설명이다. 프로그래머스에서 제시된 예시로 이용하자면 N(사람수) =6, times=[7,10] 여기서 주의를 하자면 20분..
https://www.acmicpc.net/problem/1915 1915번: 가장 큰 정사각형 첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다. www.acmicpc.net [풀이] 프로그래머스 가장큰 정사각형 풀이를 참고하면 됩니다. 2020/04/20 - [알고리즘/Programmers] - [프로그래머스] 가장 큰 정사각형 [프로그래머스] 가장 큰 정사각형 https://programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업.. ek12mv2.tistory..
https://programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] [코드 - python3] from copy import deepcopy def solution(board): row=len(board) col=len(board[0]) answer=max(board[0]) dp=deepcopy(board) for r in range(1,row): for c in range(1, col): if board[r][c]==1: if board[r-1][c-1]==1 an..
https://programmers.co.kr/learn/courses/30/lessons/43237?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] 이진탐색의 틀만 안다면 풀 수 있다. budgets=[ 120, 110, 140 , 150] 의 예를 든다면 (1) 먼저 budget을 오름차순 정렬시킨다. (2) left=0 , right=budgets[-1]=150 으로 초기화 한다. (3) 여기서 두가지 경우가 나올 수 있다. (3-1) M>=[상한액이 right일때 요청금액] 예시에서 right=150이므로 상한..
[1] 이진탐색 * 참고서적: c언어로 쉽게 쓴 자료구조/ 생능출판 / 천인국, 공용해, 하상호 지음 * 참고자료: Leetcode Explore 정렬된 배열의 중앙에 있는 값을 조사하여 찾고자 하는 항목이 왼쪽 또는 오른쪽 부분 리스트에 있는지를 알아내어 탐색의 범위를 반으로 줄이는 방법 이진탐색은 데이터의 삽입이나 삭제가 빈번할 때는 적합하지 않고 고정된 데이터에 대한 탐색에 적합하다. target값이 배열의 중앙값(mid)보다 작으면=> left~ mid-1 범위만을 탐색하고 반대로, 중앙값보다 크면 mid+1~right 범위만을 탐색하면 된다. 그래서 이진탐색에 대한 시간복잡도는 O(logN) 이다. [ 이진탐색 유형 1 ] 정렬된 배열 nums에 내가 찾고자하는 target값이 있는지 확인하자...
https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 10개이고, 수의 최대 길이는 8이다. 서로 다른 문자는 서로 다른 숫자를 나타낸다. www.acmicpc.net [ 풀이 ] 백트래킹으로 시도하려다가, 백트래킹으로하면 시간초과가 나왔고 스터디 멤버와 블로그 탐색을 도움삼아서 다시 시도했다. 풀이 방법은 그리디를 이용하여 풀었다. (1) 문자열 길이를 기준으로 정렬한다. [ GCF, ACDEB ] =>[ ACDEB, GCF ] (2) 알파벳이 위치한 자릿수를 더한다. ..
- Total
- Today
- Yesterday
- 나도 할 수 있다
- IT용어
- OS
- RDBMS
- gem
- typeORM
- MongoDB
- Nest.js
- 개발용어
- 미완
- TypeScript
- Jekyll
- 습관개선
- 바이트디그리
- 참고
- 갓생살자
- git
- Mongoose
- node.js
- 스마트폰중독
- 한달독서
- nestjs jest
- 한달어스
- jest
- 디지털디톡스
- TDD
- MySQL
- nestjs
- 클린아키텍쳐
- vscode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |