목록코팅테스트/코딩테스트 이론 정리 (24)
For Programmer

#N,M을 공백을 기준으로 구분하여 입력받기 n,m = map(int,input().split()) #2차원 리스트의 맵 정보 입력 받기 graph=[] for i in range(n): graph.append(list(map(int,input()))) #DPS로 특정 노드를 방문하고 연결된 모든 노드들도 방문 def dfs(x,y): #주어진 범위를 벗어나는 경우에는 즉시 종료 if x= n or y =m: return False #현재 노드를 방문하지 않았다면 if graph[x][y] == 0: #해당 노드 방문 처리 graph[x][y] = 1 #상 하 좌 우의 위치들도 재귀적으로 호출 dfs(x-1,y) dfs(x,y-1) dfs(x+1,y) dfs(x,y+1) return True return..

dfs 동작 예시 DFS 소스코드 예제 #DFS 메서드 정의 def dfs(graph,v,visited): #현재 노드를 방문 처리 visited[v] = True print(v,end=' ') # 현재 노드와 연결된 다른 노드를 재귀적으로 방문 for i in graph[v]: if not visited[i]: dfs(graph,i,visited) #각 노드가 연결된 정보를 표현(2차원 리스트) graph = [ [], #1부터 시작하기 위해 0인덱스는 빈리스트 [2,3,8], #1번과 인접한 노드 [1,7], #2번과 인접한 노드 [1,4,5], #3번과 인접한 노드 [3,5], #4번과 인접한 노드 [3,4], #5번과 인접한 노드 [7], #6번과 인접한 노드 [2,6,8], #7번과 인접한 노드..

탐색이란? 스택자료구조란? -> 파이썬에서는 stack 라이브러리를 제공한다. 큐 자료구조란? -> list로도 구현이 가능하나 시간복잡도 면에서 손해기 때문에 deque를 이용하는것이 낫다.

문제2 나의코드 N = int(input()) count = 0 for i in range(N+1): for m in range(60): for s in range(60): if(s == 3 or m == 3 or i == 3): count += 1 elif(s == 13 or m == 13 or i == 13): count +=1 elif(s== 23 or m == 23 or i == 23): count +=1 elif (s == 43 or m == 43): count += 1 elif (s == 53 or m == 53): count += 1 elif ((s >= 30 and s= 30 and m 0 ): count += 1 nx = column + dy[1] + dy[1] #서서남 ny = row ..

코딩테스트에서 구현이란? -> dx= [0,-1,0,1] dy=[1,0,-1,0] -> x는 행 , y는 열로 보면된다. 동쪽으로 갈때는 (0,1) 이 되는데, 행은 이동하지않고 열만 오른쪽으로 한칸 이동해야하기 때문에 (0,1)이 나온다. 북쪽은 (-1,0) 이 되는데, 행을 오른쪽 한칸 올리고 열을 가만히 냅두면 된다. 구현 대표적 문제1 나의 코드 n = int(input()) data = list(map(str,input().split())) nx = 1 ny = 1 dx = [0,-1,0,1] #동,북,서,남 #R U L D dy = [1,0,-1,0] #동,북,서,남 #R U L D for i in range(len(data)): if(data[i] == "R"): # data[i] 가 "R"..

문제3 정답코드 data = input() # 문자열데이터입력 result = int(data[0]) # 첫 번째 문자를 인트형으로 대입 for i in range(1,len(data)): #두수중 하나라도 0혹은 1인 경우 곱하기보다는 더하기 수행 num = int(data[i]) if num 1: # int(data[i])

해당 자료들은 https://www.youtube.com/watch?v=Mf0pYO8VAZk&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81 의 유튜브 자료를 참고하여 포스팅 하였습니다. 그리디 알고리즘 이란? 그리디 알고리즘의 대표적인 문제 정답: n = 1260 count =0 array = [500,100,50,10] for coin in array: count += n // coin n %= coin print(count) 문제2 정답 코드 n,k = map(int, input().split()) result = 0 while True: #N이 K로 나누어 떨어지는 수가 될 때까지 빼기 target = (n // k) * k result += (n-target) n = ta..