분류 전체보기
-
로또 추첨기 풀이 6개의 무작위 공과 1개의 보너스 공을 뽑아주는 프로그램을 작성하시오. 개인 풀이 다이어그램 알고리즘 // 무작위 숫자 7개 뽑기 const allNumbers = Array(45) .fill() .map((el, i) => i + 1); const randomNumbers = []; for (let _ = 0; _ < 7; _++) { const index = Math.floor(Math.random() * allNumbers.length); // 0 ~ 8 randomNumbers.push(allNumbers[index]); allNumbers.splice(index, 1); } const ballNumbers = randomNumbers.slice(0, 6).sort((a, b) ..
[JavaScript] 로또 추첨기 풀이로또 추첨기 풀이 6개의 무작위 공과 1개의 보너스 공을 뽑아주는 프로그램을 작성하시오. 개인 풀이 다이어그램 알고리즘 // 무작위 숫자 7개 뽑기 const allNumbers = Array(45) .fill() .map((el, i) => i + 1); const randomNumbers = []; for (let _ = 0; _ < 7; _++) { const index = Math.floor(Math.random() * allNumbers.length); // 0 ~ 8 randomNumbers.push(allNumbers[index]); allNumbers.splice(index, 1); } const ballNumbers = randomNumbers.slice(0, 6).sort((a, b) ..
2022.02.05 -
숫자야구 4자리 정답 숫자를 찾는 문제. 입력값 4자리 수 중 숫자가 포함되어 있는 경우 볼, 자리까지 동일하면 스트라이크. 모두 맞추면 홈런. 개인 풀이 다이어그램 알고리즘 // 랜덤 정수 4자리 정답값 부여 const randomNumberInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; let answer = ""; while (answer.length !== 4) { let random = String(randomNumberInRange(1, 9)); if (answer.indexOf(random) == -1) { answer += random; } } // 정답값 표시 ( 실제 플레이 시 이 부분은 주석처리 ) ..
[JavaScript] 숫자야구 풀이숫자야구 4자리 정답 숫자를 찾는 문제. 입력값 4자리 수 중 숫자가 포함되어 있는 경우 볼, 자리까지 동일하면 스트라이크. 모두 맞추면 홈런. 개인 풀이 다이어그램 알고리즘 // 랜덤 정수 4자리 정답값 부여 const randomNumberInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; let answer = ""; while (answer.length !== 4) { let random = String(randomNumberInRange(1, 9)); if (answer.indexOf(random) == -1) { answer += random; } } // 정답값 표시 ( 실제 플레이 시 이 부분은 주석처리 ) ..
2022.02.04 -
최단 경로 알고리즘 문제 최단 경로 알고리즘 다익스트라 최단 경로 알고리즘 원론적 구현 import sys input = sys.stdin.readline() INF = int(1e9) # 무한을 의미하는 값으로 10억 설정 # 노드의 개수, 간선의 개수 입력 n, m = map(int, input().split()) # 시작 노드 번호를 입력받기 start = int(input()) # 각 노드에 연결되어 있는 노드에 대한 정보를 담는 리스트를 만들기 graph = [[] for _ in range(n + 1)] # 방문한 적이 있는지 체크하는 목적의 리스트 생성 visited = [False] * (n + 1) # 최단 거리 테이블을 모두 무한으로 초기화 distance = [INF] * (n + 1..
[이코테 Python] 최단 경로 알고리즘최단 경로 알고리즘 문제 최단 경로 알고리즘 다익스트라 최단 경로 알고리즘 원론적 구현 import sys input = sys.stdin.readline() INF = int(1e9) # 무한을 의미하는 값으로 10억 설정 # 노드의 개수, 간선의 개수 입력 n, m = map(int, input().split()) # 시작 노드 번호를 입력받기 start = int(input()) # 각 노드에 연결되어 있는 노드에 대한 정보를 담는 리스트를 만들기 graph = [[] for _ in range(n + 1)] # 방문한 적이 있는지 체크하는 목적의 리스트 생성 visited = [False] * (n + 1) # 최단 거리 테이블을 모두 무한으로 초기화 distance = [INF] * (n + 1..
2022.01.19 -
다이나믹 프로그래밍 문제 다이나믹 프로그래밍 조건 최적 부분 구조 : 큰 문제를 작은 문제로 나눌 수 있으며 작은 문제의 답을 모아서 큰 문제를 해결할 수 있다. 중복되는 부분 문제 : 동일한 작은 문제를 반복적으로 해결해야 한다 전형적으로 보텀업(상향식) 방식을 사용 피보나치 수 단순 재귀형 O(2^n) def fibonacci(x): if x == 1 or x == 2: return 1 else: return fibonacci(x - 1) + fibonacci(x - 2) print(fibonacci(30)) DP 탑다운 O(n) # 한 번 계산된 결과를 메모이제이션하기 위한 리스트 초기화 n = int(input()) d = [0] * (n + 1) # 피보나치 함수를 재귀함수로 구현 (탑다운 형식..
[이코테 Python] 다이나믹 프로그래밍 문제다이나믹 프로그래밍 문제 다이나믹 프로그래밍 조건 최적 부분 구조 : 큰 문제를 작은 문제로 나눌 수 있으며 작은 문제의 답을 모아서 큰 문제를 해결할 수 있다. 중복되는 부분 문제 : 동일한 작은 문제를 반복적으로 해결해야 한다 전형적으로 보텀업(상향식) 방식을 사용 피보나치 수 단순 재귀형 O(2^n) def fibonacci(x): if x == 1 or x == 2: return 1 else: return fibonacci(x - 1) + fibonacci(x - 2) print(fibonacci(30)) DP 탑다운 O(n) # 한 번 계산된 결과를 메모이제이션하기 위한 리스트 초기화 n = int(input()) d = [0] * (n + 1) # 피보나치 함수를 재귀함수로 구현 (탑다운 형식..
2022.01.19 -
이진 탐색 알고리즘 문제 이진 탐색 알고리즘 def binary_search_recursive(arr, target, stt, end): if stt > end: return None mid = (stt + end) // 2 if arr[mid] == target: return mid elif arr[mid] > target: return binary_search_recursive(arr, target, stt, mid - 1) else: return binary_search_recursive(arr, target, mid + 1, end) def binary_search_loop(arr, target, stt, end): while stt target: end = mid - 1 else: stt = m..
[이코테 Python] 이진 탐색 알고리즘 문제이진 탐색 알고리즘 문제 이진 탐색 알고리즘 def binary_search_recursive(arr, target, stt, end): if stt > end: return None mid = (stt + end) // 2 if arr[mid] == target: return mid elif arr[mid] > target: return binary_search_recursive(arr, target, stt, mid - 1) else: return binary_search_recursive(arr, target, mid + 1, end) def binary_search_loop(arr, target, stt, end): while stt target: end = mid - 1 else: stt = m..
2022.01.13 -
정렬 알고리즘 문제 정렬 알고리즘 선택 정렬 # 선택 정렬 arr = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(arr)): min_index = i for j in range(i + 1, len(arr)): if arr[min_index] > arr[j]: min_index = j arr[i], arr[min_index] = arr[min_index], arr[i] print("선택 정렬 :", arr) 삽입 정렬 # 삽입 정렬 arr = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(1, len(arr)): # i-1까지는 정렬되어 있다고 가정 for j in range(i, 0, -1): if arr[j] < arr[..
[이코테 Python] 정렬 알고리즘 문제정렬 알고리즘 문제 정렬 알고리즘 선택 정렬 # 선택 정렬 arr = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(arr)): min_index = i for j in range(i + 1, len(arr)): if arr[min_index] > arr[j]: min_index = j arr[i], arr[min_index] = arr[min_index], arr[i] print("선택 정렬 :", arr) 삽입 정렬 # 삽입 정렬 arr = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(1, len(arr)): # i-1까지는 정렬되어 있다고 가정 for j in range(i, 0, -1): if arr[j] < arr[..
2022.01.13