본문 바로가기

BOJ3

🐨BOJ#1697 숨바꼭질]🙄BFS(feat. collections) 문제 보기 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 아이디어 딱 봐도 dp로 풀 수 있을 것 같지만... 머리가 아파서(=어려워서) 수빈이가 도착할 수 있는 위치가 분기로 갈라지는 트리를 만들어서 풀기로 했다. 가장 적은 횟수(빠른 시간)에 동생을 찾아야 하기 때문에, 트리의 깊이가 가장 얕은 게 정답이다. 그래서 dfs로 탐색한 뒤 깊이를 비교하는 것 보다 bfs를 사용해야 한다고 생각했다. 그리고 분기.. 2024. 3. 29.
# 2559번 수열 ''' 10개의 원소가 있고 3 크기의 윈도우를 슬라이딩 시킨다고 하면 0 1 2 3 4 5 6 7 8 9 |___| | | | | | | | |___| | | | | | | |___| | | | | | |___| | | | | |___| | | | |___| | | |___| | |___| 반복 횟수는 10 - 3 + 1 = 8회다. 최초 윈도우를 설정하는1회를 제외한 7회동안 제일 앞과 제일 뒤의 값을 빼고 더하면 된다. n개의 원소와 k크기의 윈도우라면 n-k회가 된다. ''' import sys def sliding_window_sum(arr, n, k): window = sum(arr[0:k]) result = window for i in range(n-k): window = window - a.. 2024. 3. 9.
백준1003🐨피보나치 함수.py - DP, MEMO + 분할 정복 1003번: 피보나치 함수각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.www.acmicpc.net와 피보나치다! CPP 코드도 줬네? 전역변수 써서 더하면 되잖아 하고 풀다가 뭔가 이상함을 감지했습니다. 게다가 라이브러리 문제로 컴파일 에러도 났습니다. 나중에 의도대로 수정해 보니 역시 시간초과입니다.#include int zeros, ones;int fibonacci(int n) { if (n == 0) { zeros++;return 0;} else if (n == 1) {ones++;return 1;} else {return fibonacci(n - 1) + fibonacci(n - 2);}}int main() { int number.. 2024. 2. 2.