일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- boj
- 모던 JavaScript 튜토리얼
- 트리
- 투 포인터
- 수학
- 정렬
- 에라토스테네스의 체
- 누적 합
- 이분 탐색
- 플로이드-워셜
- 정수론
- BFS
- 싸피
- 13164
- 슬라이딩 윈도우
- JavaScript
- DP
- 그리디
- SSAFY
- 세그먼트 트리
- 브루트포스
- 2357
- 애드 혹
- 구현
- 해시 테이블
- 그래프
- 맵
- 문자열
- Python
- DFS
- Today
- Total
목록전체 글 (271)
흙금이네 블로그
아이디어 시간에 맞게 입장과 퇴장이 모두 확인된 학회원들을 찾는다. 풀이 #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를 호출하는데, 해당 칸을 방문한 적이 있으면 함수를 바로 종료한다. 방문한 적이 없으면 해당 칸 방문 표시 이후, 현재 칸보다 대나무가 더 많은 근처 칸에 대..
아이디어 순서대로 T에서 S의 문자들을 찾아 나간다. 풀이 #1 (Python) 테스트 케이스 수가 따로 주어지지 않으므로 sys.stdin.readlines으로 입력 값을 모두 읽는다. 각 테스트 케이스에서 find 메서드로 T에서 찾은 문자열 S의 문자들 인덱스를 차례로 idx에 저장하고, 그 다음 문자는 그 이후 인덱스부터 찾아 나가는 식으로 for문을 반복한다. 도중에 S의 문자가 T에 존재하지 않아 idx가 -1이 되면 No를 출력하고, S의 문자들을 모두 찾는 경우 Yes를 출력한다. import sys input = sys.stdin.readlines for case in input(): S, T = case.split() idx = -1 for c in S: idx = T.find(c, i..