Programming/Algorithm
-
https://youtu.be/7C9RgOcvkvo?si=934r_SLkImsdK3b- 본 내용은 위 유투브를 참고했음을 밝힙니다. 재귀함수 재귀함수(Recursion Function)란 자기 자신을 다시 호출하는 함수 단순한 형태의 재귀 함수 예제 '재귀 함수를 호출합니다.'라는 문자열을 무한히 출력함 어느 정도 출력하다가 최대 재귀 깊이 초과 메시지가 출력됨 def recursive_function(): print('재귀 함수를 호출합니다.') recursive_function() recursive_function() 별도로 while/for 를 사용하지 않아도 반복문 사용 가능. but, 재귀 함수의 종료 조건을 반드시 명시해야 함. 종료 조건을 제대로 명시하지 않으면 함수가 무한히 호출됨. 종류 ..
[DFS/BFS] 재귀함수https://youtu.be/7C9RgOcvkvo?si=934r_SLkImsdK3b- 본 내용은 위 유투브를 참고했음을 밝힙니다. 재귀함수 재귀함수(Recursion Function)란 자기 자신을 다시 호출하는 함수 단순한 형태의 재귀 함수 예제 '재귀 함수를 호출합니다.'라는 문자열을 무한히 출력함 어느 정도 출력하다가 최대 재귀 깊이 초과 메시지가 출력됨 def recursive_function(): print('재귀 함수를 호출합니다.') recursive_function() recursive_function() 별도로 while/for 를 사용하지 않아도 반복문 사용 가능. but, 재귀 함수의 종료 조건을 반드시 명시해야 함. 종료 조건을 제대로 명시하지 않으면 함수가 무한히 호출됨. 종류 ..
2024.02.13 -
https://youtu.be/7C9RgOcvkvo?si=RF2LuZTkoj4NQeAy 본 내용은 위 유투브를 참고해서 작성했습니다! 그래프 탐색 알고리즘: DFS/ BFS 탐색 (Search)이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 그래프 탐색 알고리즘: DFS, BFS 코딩테스트에 매우 자주 등장하는 유형 스택 자료 구조 먼저 들어 온 데이터가 나중에 나가는 형식(선입후출) 입구와 출구가 동일한 형태 박스, 프링글스 과자통 등 파이썬에서는 리스트로 스택을 사용할 수 있음. -> append(n), pop() 순서를 뒤집어서 출력할 때는 [::-1] 자바에서는 peek()라는 메소드를 사용함. 큐 자료구조 먼저 들어 온 데이터가 먼저 나가는 형식 (선입선출) 입구와 출구가 모두..
[DFS/BFS] 그래프 탐색 알고리즘https://youtu.be/7C9RgOcvkvo?si=RF2LuZTkoj4NQeAy 본 내용은 위 유투브를 참고해서 작성했습니다! 그래프 탐색 알고리즘: DFS/ BFS 탐색 (Search)이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 그래프 탐색 알고리즘: DFS, BFS 코딩테스트에 매우 자주 등장하는 유형 스택 자료 구조 먼저 들어 온 데이터가 나중에 나가는 형식(선입후출) 입구와 출구가 동일한 형태 박스, 프링글스 과자통 등 파이썬에서는 리스트로 스택을 사용할 수 있음. -> append(n), pop() 순서를 뒤집어서 출력할 때는 [::-1] 자바에서는 peek()라는 메소드를 사용함. 큐 자료구조 먼저 들어 온 데이터가 먼저 나가는 형식 (선입선출) 입구와 출구가 모두..
2024.02.13 -
https://youtu.be/2zjoKjt97vQ?si=C2xtuq7aedV-mwg2 본 내용은 위 유투브를 참고해서 작성했음을 밝힙니다! 문자열 재정렬 문제 해결 아이디어 나의 풀이 input_data = input() # K1KA5CB7 sorted_data = sorted(input_data) num = 0 result = '' # print(ord('0')) # 48 # print(ord('9')) # 57 for s in sorted_data: if 48
[구현 알고리즘] 문제: 문자열 재정렬https://youtu.be/2zjoKjt97vQ?si=C2xtuq7aedV-mwg2 본 내용은 위 유투브를 참고해서 작성했음을 밝힙니다! 문자열 재정렬 문제 해결 아이디어 나의 풀이 input_data = input() # K1KA5CB7 sorted_data = sorted(input_data) num = 0 result = '' # print(ord('0')) # 48 # print(ord('9')) # 57 for s in sorted_data: if 48
2024.02.13 -
https://www.youtube.com/watch?v=2zjoKjt97vQ&t=1326s 본 내용은 위의 유투브를 참고했음을 밝힙니다! 왕실의 나이트 풀이 과정 * 음.. LRUD문제랑 관련이 있는 것 같긴 한데.. * 8 * 8 matrix이니까 나올 수 있는 경우의 수가 한정적이긴 한 것 같다. * (1, 1) -> (3, 2), (2, 3) 2개: +2, +1 or +1, +2 * (1, 2) -> (2, 4), (3, 3), (3, 1): 여기서는 +2, -1이 추가 됨 * 그러니까 정리해보면 * (+1, +2), (+2, +1) * (+2, -1), (-1, +2) * (-2, +1), (+1, -2) * (-1, -2), (-2, -1) * 이렇게 8가지가 나올 수 있는데 이게 범위안에 있..
[구현 알고리즘] 문제: 왕실의 나이트https://www.youtube.com/watch?v=2zjoKjt97vQ&t=1326s 본 내용은 위의 유투브를 참고했음을 밝힙니다! 왕실의 나이트 풀이 과정 * 음.. LRUD문제랑 관련이 있는 것 같긴 한데.. * 8 * 8 matrix이니까 나올 수 있는 경우의 수가 한정적이긴 한 것 같다. * (1, 1) -> (3, 2), (2, 3) 2개: +2, +1 or +1, +2 * (1, 2) -> (2, 4), (3, 3), (3, 1): 여기서는 +2, -1이 추가 됨 * 그러니까 정리해보면 * (+1, +2), (+2, +1) * (+2, -1), (-1, +2) * (-2, +1), (+1, -2) * (-1, -2), (-2, -1) * 이렇게 8가지가 나올 수 있는데 이게 범위안에 있..
2024.02.13 -
https://youtu.be/2zjoKjt97vQ?si=ZCZlL6rJzNjPxq8A 본 내용을 위 유투브를 참고해서 작성했음을 밝힙니당~ 시각 * 처음에 문제 듣자마자 들은 생각.. 띠용? * 이걸 어떻게 풀어야 하나... * 다행인건 N이 숫자 하나라는 건데.. * 그러면 1인 경우에 1 -> 01:59:59이니까 1보다 큰 숫자들은 곱하기를 하면 되는 것인가? * 00:00:00 ~ 01:59:59 * 00:00:03 * 00:00:13 * 00:00:23 -> 이런식으로 6번 (0~5) * 00:01:03 -> 이런식으로 6번 * 59번(00~59) = 354번 * 5를 입력하면... 354 * 6 는 아님 왜?? 문제 해결 아이디어 # H 입력받기 h = int(input()) count = ..
[구현 알고리즘] 문제: 시각https://youtu.be/2zjoKjt97vQ?si=ZCZlL6rJzNjPxq8A 본 내용을 위 유투브를 참고해서 작성했음을 밝힙니당~ 시각 * 처음에 문제 듣자마자 들은 생각.. 띠용? * 이걸 어떻게 풀어야 하나... * 다행인건 N이 숫자 하나라는 건데.. * 그러면 1인 경우에 1 -> 01:59:59이니까 1보다 큰 숫자들은 곱하기를 하면 되는 것인가? * 00:00:00 ~ 01:59:59 * 00:00:03 * 00:00:13 * 00:00:23 -> 이런식으로 6번 (0~5) * 00:01:03 -> 이런식으로 6번 * 59번(00~59) = 354번 * 5를 입력하면... 354 * 6 는 아님 왜?? 문제 해결 아이디어 # H 입력받기 h = int(input()) count = ..
2024.02.13 -
https://www.youtube.com/watch?v=2zjoKjt97vQ&t=1326s 본 내용은 위의 동영상을 참고해서 작성했습니다~ 문제: 상하좌우 시작 좌표 (1,1) 공간밖은 무시됨. 문제 해결 아이디어 # 행렬 예시 for i in range(5): for j in range(5): print('(', i, ',', j, ')') print() #%% #동, 북, 서, 남 dx = [0, -1, 0, 1] dy = [1, 0, -1, 0] # 현재 위치 x, y = 1, 1 for i in range(4): # 다음 위치 nx = x + dx[i] ny = y + dy[i] print(nx, ny) #%% md * 문제를 풀기전에 구현에 대해서 배울 때 사용했던 짧은 코드를 가져왔다. * ..
[구현 알고리즘] 문제: 상하좌우https://www.youtube.com/watch?v=2zjoKjt97vQ&t=1326s 본 내용은 위의 동영상을 참고해서 작성했습니다~ 문제: 상하좌우 시작 좌표 (1,1) 공간밖은 무시됨. 문제 해결 아이디어 # 행렬 예시 for i in range(5): for j in range(5): print('(', i, ',', j, ')') print() #%% #동, 북, 서, 남 dx = [0, -1, 0, 1] dy = [1, 0, -1, 0] # 현재 위치 x, y = 1, 1 for i in range(4): # 다음 위치 nx = x + dx[i] ny = y + dy[i] print(nx, ny) #%% md * 문제를 풀기전에 구현에 대해서 배울 때 사용했던 짧은 코드를 가져왔다. * ..
2024.02.12