전체 글579 Goorm_발전기(2) 문제 풀이 from collections import deque def bfs(n,k,grid): dic = {} directions = [(-1, 0), (1, 0), (0, -1), (0, 1)] m = [[False for _ in range(n)] for _ in range(n)] for i in range(n): for j in range(n): current = grid[i][j] if current not in dic: dic[current]=0 count=1 if not m[i][j]: m[i][j]=True queue = deque([(i, j)]) while queue: x, y = queue.popleft() for dx, dy in directions: nx, ny = x + dx,.. 알고리즘 풀이 2023. 8. 30. Goorm _발전기 문제 풀이 from collections import deque # Python 코드로 문제 해결 알고리즘 구현 (BFS 사용) def min_generators(n, grid): # 발전기 개수 초기화 generator_count = 0 # 전력 공급 상태를 저장할 리스트 초기화 supplied = [[False for _ in range(n)] for _ in range(n)] # BFS를 위한 방향 벡터 directions = [(-1, 0), (1, 0), (0, -1), (0, 1)] # 모든 칸을 순회 for i in range(n): for j in range(n): # 집이 있는 칸을 찾음 if grid[i][j] == 1 and not supplied[i][j]: # 전력이 공급되지 않은.. 알고리즘 풀이 2023. 8. 30. 🐥 카카오 테크 캠퍼스 아이디어톤 지극히 개인적인 후기 Intro. 두근득근 아이디어톤 8월 25~27일까지 카카오 테크 캠퍼스 3단계 아이디어톤을 다녀왔다 1단계는 기초 학습, 2단계는 클론 프로젝트 하면서 기술적으로 파고 들었다면, 3단계에서는 실제 서비스까지 직접 만들어보는거다 아이디어톤에 들어가기 전에 걱정했던 것은 역시나 1-2단계 동안 정 들었던 팀원들과 분리 되어 다시 팀이 짜진다는거다 같이 프로젝트를 하진 않았지만, 밀집 된 일정과 과제들을 낙오 없이 헤쳐나오다보니 왠지 모를 전우애가 생긴거 같다 하지만 걱정과 다르게 너무나 좋은 팀원들을 만났다 흠 잘하자 고범수 나만 잘하면 될 듯 Good Point 고독한 쿠키즈 알고리즘 스터디 운영 새삼스럽게 잘한 점은 고독한 쿠키즈 스터디를 시작한 것이다. 고독한 쿠키즈는 데일리 스크럼을 하던 중 알고리.. 프로젝트/카카오 테크 캠퍼스 2023. 8. 27. 구름톤 챌린지 2주차 - 2 폭탄 구현하기 2 N,K = map(int,input().split()) mp = [list(input().split()) for _ in range(N)] m = [[0 for _ in range(N)] for _ in range(N)] def check(y,x): y-=1 x-=1 global mp,m if y 알고리즘 풀이 2023. 8. 24. Goorm_구름 찾기 깃발 구름 찾기 깃발 N,K = map(int,input().split()) mp = [list(map(int,input().split())) for _ in range(N)] m = [[0 for _ in range(N)] for _ in range(N)] def check(x, y): global m for i in range(x-1,x+2,1): for j in range(y-1,y+2,1): if i 알고리즘 풀이 2023. 8. 22. 구름톤 챌린지 2주차 문자열 나누기 n = int(input()) st = input() # 최적화된 코드 # 모든 부분 문자열 찾기 (중복 제외, 길이가 n-2 이하인 부분 문자열만 포함) all_substrings = set() for i in range(n): for j in range(i + 1, n + 1): if len(st[i:j]) > n - 2: continue all_substrings.add(st[i:j]) all_substrings = sorted(list(all_substrings)) # 부분 문자열 인덱스 캐싱 substring_index_mapping = {substring: idx for idx, substring in enumerate(all_substrings)} # 최대 점수를 저장할 변수 .. 알고리즘 풀이 2023. 8. 21. Baekjoon_나무 자르기 문제 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기를 이용해서 나무를 구할것이다. 목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따라서, 높이가 H보다 큰 나무는 H 위의 부분이 잘릴 것이고, 낮은 나무는 잘리지 않을 것이다. 예를 들어, 한 줄에 연속해있는 나무의 높이가 20, 15, 10, 17이라고 하자. 상근이가 높이를 15로 지정했다면, 나무를 자른 뒤의 높이는 15, 15.. 알고리즘 풀이 2023. 8. 19. Baekjoon_수 찾기 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 출력 M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 풀이 def binary_search(arr, target): left, right = 0, len(arr) - 1 while left 알고리즘 풀이 2023. 8. 19. Baekjoon_요세푸스 문제 0 문제 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import jav.. 알고리즘 풀이 2023. 8. 17. 구름톤 챌린지 1주차 -2 옵시디언으로 문제를 푸는데, 블로그 포스팅 할 때 프론트 매터가 올라오는 문제가 있어서 포스트를 분리하였다 그렇다고, 티스토리에서 수정하면 코드 블록이 일렬로 나오는 문제가 있어 진퇴양난의 상황이다 아무튼 1주차 문제는 구현 위주라 아직 어려움을 못느끼고 있다 재밌다! 문제 풀이 3일차 문제 n = int(input()) result = 0 operations = {'+': lambda x, m: x + m, '/': lambda x, m: x // m, '-': lambda x, m: x - m, '*': lambda x, m: x * m} for _ in range(n): x, v, m = input().split() result += operations[v](int(x), int(m)) print(.. 알고리즘 풀이 2023. 8. 17. Obsidian Tistory 플러그인 버그 수정 아무 생각 없이 제가 쓴 글을 모바일로 보는데, …? 프론트 매터가 여러개가 나오고 있었습니다 이게 뭔일이지 싶어, 확인해보니, 글을 배포 할 때마다, 즉 배포하고 수정 할 때마다 프론트 매터가 덧붙여지는 문제가 생겼습니다 해결 과정 일단 안피곤님의 깃허브 저장소로 찾아가 소스를 받고, 실행하였습니다 플러그인으로는 Hot-Reload, IDE는 인텔리제이를 사용하였습니다 문제 분석 결론부터 말씀드리면, Obsidian 베타 버전을 사용하면서, 기존의 옵시디언 프론트 매터 관련 코드가 바뀌어서 생긴 문제였습니다 원래는 이런 일이 없었는데 갑자기 발생한거라면, 베타 버전으로 바뀌면서 내부 코드가 변경 되었다 생각했습니다 그리고, 프론트 매터가 갑자기 추가 되기 시작한거라면, 내부 파일을 업데이트 하는 부분에.. ETC/Obsidian 2023. 8. 16. 배열이 리스트보다 더 빠른 이유 결론을 먼저 말하자면, 배열과 리스트 간의 성능 차이는 사용 사례와 구현에 따라 다를 수 있으며, 종종 미미 할 수 있다 하지만, 자료구조 관점에서 리스트와 배열의 차이를 파악해보자 Intro. 궁금하더라 원래는 파이썬으로 알고리즘 문제를 풀었었는데, 자바로 풀게 되면서 궁금함을 느꼈다 이런 기초가 재밌더라 왠지 계속 글을 수정해 나가야겠다 실습 1. 데이터 읽기와 저장 비교 배열 쓰기 시간: 29.30 ms 리스트 쓰기 시간: 64.75 ms 배열 읽기 시간: 0.00 ms 리스트 읽기 시간: 0.01 ms 배열 쓰기 배열의 크기는 고정되어 있으므로, 쓰기 연산은 매우 빠릅니다. 리스트 쓰기 ArrayList는 동적으로 크기를 조정할 수 있으므로, 필요에 따라 내부 배열을 확장해야 할 수도 있습니다. .. 알고리즘 풀이 2023. 8. 16. 이전 1 ··· 7 8 9 10 11 12 13 ··· 49 다음