일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SSAFY
- 에라토스테네스의 체
- 트리
- 누적 합
- 싸피
- boj
- 2357
- 모던 JavaScript 튜토리얼
- 투 포인터
- DFS
- 플로이드-워셜
- JavaScript
- 수학
- 정렬
- 문자열
- 그리디
- 맵
- 이분 탐색
- 13164
- 슬라이딩 윈도우
- 정수론
- BFS
- 구현
- Python
- 해시 테이블
- 그래프
- 브루트포스
- DP
- 애드 혹
- 세그먼트 트리
- Today
- Total
목록전체 글 (272)
흙금이네 블로그

아이디어 위쪽, 왼쪽, 오른쪽의 가능한 지역 중 최대 가치를 더해 나간다. 풀이 입력 받은 N, M을 저장하고, 첫 행을 입력 받아 리스트 dp에 저장한다. 첫 행의 지역들은 시작 지점을 제외하고는 왼쪽 지역을 탐사해야 이동할 수 있으므로, dp를 오른쪽으로 누적하여 더한다. 첫 행과 마지막 행의 지역들을 제외한 지역들을 처리하기 위해 N-2의 크기로 for문을 실행한다(N > 2일 때 실행). 우선 현재 행을 arr에 입력 받고, arr과 같은 크기로 0이 채워진 리스트 temp를 생성한다. temp에는 왼쪽에서 오른쪽으로 탐사해 나갈 때의 최대 가치를 저장한다. temp의 첫 번째 값은 arr의 첫 번째 값(현재 지역 가치)과 dp의 첫 번째 값(위쪽 지역 최대 누적 가치)의 합으로 저장하고, 나머지..

아이디어 시간에 맞게 입장과 퇴장이 모두 확인된 학회원들을 찾는다. 풀이 #1 (Python) 개강총회 시작 시간 S, 개강총회 종료 시간 E, 스트리밍 종료 시간 Q를 모두 문자열로 입력 받는다. 테스트 케이스 수가 따로 주어지지 않으므로 try except문으로 입력이 주어지는 동안 while문을 반복한다. 시간은 T, 이름은 name에 문자열로 저장하고, T가 S 이하이면 딕셔너리 names에 name을 1로 저장한다. T가 E 이상 Q 이하이면서 names에 값이 있으면 중복 계산 방지를 위해 해당 값을 0으로 바꾸고 결과값 res를 증가시킨다. 문자열의 대소 비교에서는 순서대로 각 문자열 문자들의 아스키 코드 값으로 대소 비교가 된다. import sys input = sys.stdin.read..

아이디어 DFS로 각 지역에서 이동할 수 있는 최대 경로 길이를 저장해 나간 후, 숲에서의 최대 경로 길이를 구한다. 풀이 함수를 이용한 DFS를 위해 sys.setrecursionlimit으로 최대 재귀 깊이를 최대 대나무 숲의 크기인 500*500로 설정한다. 상하좌우로 이동하는 행열 변화 값을 리스트 delta에 저장하고, 숲의 크기를 n, 숲 정보를 2차원 리스트 forest에 저장한다. 방문 표시 및 최대 경로 길이를 저장하는 2차원 리스트 visited와 결과값을 저장하는 res를 만든다. 이중 for문을 돌며 각 칸에 대해 함수 dfs를 호출하는데, 해당 칸을 방문한 적이 있으면 함수를 바로 종료한다. 방문한 적이 없으면 해당 칸 방문 표시 이후, 현재 칸보다 대나무가 더 많은 근처 칸에 대..