본문 바로가기

전체 글

(172)
[백준] 21921 블로그 / 구현 / Python 실3 (개발자 강화/코딩 테스트) 2024. 11. 27. 23:33 https://www.acmicpc.net/problem/21921 슬라이딩 윈도우로 푸는 문제! 처음에는 for문 돌면서 배열에 s = a[i:i+k] 값을 저장하고, max 값을 업데이트 하는 방식으로 구현했는ㄴ데이렇게 하면 O(n*x)가 되어 시간초과가 났다 그래서 슬라이딩 윈도우를 사용하면서 전역변수에서 현재 a[i]값을 더하고 이전 a[i-x] 원소 값을 빼서현재 sum이 x개의 원소 합으로 유지되도록 구현한다이렇게 하면 slicing으로 탐색해서 끊지 않아도 된다 만약 현재 sum이 이전 max값보다 크다면count값을 1로 리셋하고max값을 현재 sum으로 대체한다 만약 현재 sum과 max값이 같다면 count을 1 증가한다 max값이 0보다 크면 max값과 count값을 출력하고그 외에는..
[백준] 9935 문자열 폭발 / 구현 / Python 골4 (개발자 강화/코딩 테스트) 2024. 11. 26. 23:05 https://www.acmicpc.net/problem/9935 처음에 파이썬 replace로 비벼보려고 했는데, 칼같이 시간초과 나온대서 포기;; 다른 블로그 아이디어를 참고했다 stack에 문자열 요소를 하나씩 집어넣으면서그때마다 stack의 가장 최근에 집어넣어진 요소를 기준으로 폭발문자열 길이만큼 탐색했을 때그 문자열이 폭발문자열과 일치하면 stack에서 폭발문자열 길이만큼 pop하며 지워준다 stack이 비어있으면 FRULA를 출력하고그렇지 않으면 stack을 join을 써서 문자열로 만들어 출력한다 s = input()bomb = input()b = len(bomb)stack=[]for el in s: stack.append(el) if ''.join(stack[-b:])==bom..
[백준] 10026 적록색약 / BFS / Python 골5 (개발자 강화/코딩 테스트) 2024. 11. 25. 14:46 BFS 한번 풀면 BFS만 계속 푼다는 루머를 안믿었는데간단한 BFS는 그냥 바로 풀이가 눈에 보이고... 손에 한번만 익히면 다 풀 수 있어서...이것도 그냥 보자마자 바로 짜서 푼듯 2~30분 정도 걸린 듯? 적록색약이 아닌 경우 (no)적록색약인 경우(yes)로 함수를 나누고 이중 for문으로 그림 요소를 모두 탐색할 때visited 배열을 적록색약인 경우 or not 각각 2개 둬서탐색되지 않은 원소만 bfs로 진입한다 적록색약이 아닌 경우는 현재 입력된 문자와 같은 경우만 q에 append하고,적록색약인 경우에는 현재 입력된 문자가 B인 경우에는 B만 q에 append, R or G인 경우에는 R or G를 모두 q에 append한다 이렇게 bfs를 술술 짰더니 바로 맞았습니다가 떴다   fro..