CS/알고리즘23 [이코테] DFS & BFS - 미로 탈출 못 풀었다. DFS와 BFS는 정말 머리 속에 안 들어와,,, 심지어 이번 문제는 BFS로 풀어야 하는데 DFS로 풀려고 했음 1. 내 풀이 ㅋㅋㅋㅋ 이걸 풀었다고 할 수 있을까...? n, m = map(int, input().split()) # 미로 만들기 graph = [] for i in range(n): for j in range(m): graph.append(list(int(input()))) def dfs(x, y): if graph[x][y] == 1: graph[x][y] = 0 dfs(x-1,y) dfs(x+1,y) dfs(x,y-1) dfs(x,y+1) else: return False def visited(): if 1-1. 풀이 도중 생각 1) 이건 dfs일까 bfs일까? 우선 가.. 2023. 2. 3. [이코테] DFS, BFS - 음료수 얼려먹기 오랜만에 포스팅한다... 왜냐? DFS BFS 개념도 이해하는데 시간이 걸렸기 때문 한 번도 시도해보거나 연습해본 사고의 패턴이 아니기 때문에 (누가 일상생활에서 저렇게 생각해요;) 좀 걸렸다 잡설이 긴 이유? 그것은 이번 음료수 얼려먹기도 손도 못 대고 결국 정답을 봤기 때문이지 1. 내 풀이 진짜 처참해서 보여줄 수 없음... graph로 input 받는 것도 실패함 1-1. 풀이 도중 생각 1) 0을 기준으로 탐색하고, 종료되는 한 세트를 아이스크림 1개로 카운트하면 될 것 같다 2) 0을 기준으로 탐색하고 모든 노드에 대해서 탐색을 시작하는 것으로 짜면 될 것 같은데 그러면 아이스크림을 중복해서 세는 위험이 있지 않을까? 이것을 어떻게 처리해줄 수 있을까? 3) 방문처리를 어떻게 해줄 수 있을까?.. 2023. 2. 2. [이코테] 구현 - 문자열 압축 ㅋㅋㅋㅋㅋ 그냥 못풀었음; 피곤한 것도 있지만 이걸 어떻게 차례대로 검사할까 생각이 안 나는... 결국 15분만에 GG치고 정답 봤음. 나중에 다시 풀어봐야지 1. 내 풀이 def solution(s): answer = 0 for i in len(s): for k in len(s): s[k] return answer 이정도면 그냥 손도 못 댔다고 하는게 좋겠군 1-1. 풀이 도중 생각 1) 최소 2중 for문을 돌려서 1배수라면 1, 2, 3, 4... 2배수라면 2, 4, 6... 구간을 검사하는 알고리즘이 필요할 것 같다 2) 압축 결과 중 가장 짧은 것을 골라야 하니 이전 결과와 지금 결과를 비교하거나, 전체 결과들을 저장해서 가장 짧은 것을 출력\ 3) 입력으로 주어지는 문자열이 짧으니 조금 비효.. 2023. 1. 29. [이코테] 구현 - 문자열 재정렬 어제 문제 하나 풀었다고 좋아하더니, 오늘은 못 풀었다. 1. 내 풀이 S = input() data_list = sorted(S) result = 0 tmp = [] for data in data_list: if int(data) == True: result += int(data) print("result: ", result) else: tmp.append(data) print("tmp: ", tmp) 1-1. 풀이 도중 생각 1) 입력된값이 숫자인지는 어떻게 감지할 수 있을까? 검사했을 때 문자인거는 문자인거는 어떻게 알 수 있을까? - int(), str()를 쓰는 방법은 아닌 것 같은데... (그러면 에러나니까) 2) 예외처리에 대해서 알아야 풀 수 있는 문제일까? 2. 정답 data = inpu.. 2023. 1. 28. 이전 1 2 3 4 5 6 다음