제로베이스데이터사이언스스쿨

· 알고리즘
[순위] 수의 크고 작음을 이용해 수의 순서를 정하는 것을 순위라고 한다. for문을 두번 돌리면 된다. 하나의 숫자에 대해 나머지 숫자들과 전부 비교하여 순위를 구하고 이를 모든 숫자에 대해 마찬가지로 반복한다. import random numbers = random.sample(range(50,101),20) rank = [0 for _ in range(20)] for idx,num1 in enumerate(numbers): for num2 in numbers: if num1 < num2 : rank[idx] += 1 print(f'numbers : {numbers}') print(f'rank : {rank}') for idx, num in enumerate(numbers): print(f'num :..
· 알고리즘
[binary search] 정렬되어 있는 자료구조에서 중앙값의 크고 작음을 이용해서 데이터를 검색한다. 정렬되어 있지 않은 자료구조라면 먼저 정렬을 시켜 주어야 이진 탐색이 가능하다. 중앙값을 기준으로 검색 범위를 점차 좁혀나가는 방식이다. 다음과 같은 자료구조가 있다고 하자. [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] 이때 중앙값은 5 이다. 우리가 찾으려는 값을 2라고 한다면, 5보다 큰 값을 굳이 검색할 필요는 없을 것이다. [ 1, 2, 3, 4, 5 ] 여기서의 중앙값은 3이다. 따라서 4, 5는 필요가 없으므로 버려지게 된다. [ 1, 2, 3 ] 중앙값은 2 이다. 바로 내가 찾으려는 값이다. 반복문을 사용한 이진탐색 예시 코드 참조; 나동빈 (2020). . 서울시: 한빛미디어..
🥕 [ 백준 1193 ] 분수찾기 문제 링크 url : https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 🍒 문제 분석 다음과 같이 지그재그로 순번으로 분수가 번호가 매겨져있다고 하자. ( 1/1 이 1번, 1/2가 2번 ... ) X번째 분수를 찾아보자. 군수열 문제이다. 1군에 1개, 2군에 2개, 3군에 3개 식으로 진행된다. 🥑 코드 X = int(input()) count = 1 roomSum = 0 while True: roomSum += count if roomSum >= X: break count += 1 temp = roomSum-X if count % 2 ==..
🥕 [ 백준 2292 ] 벌집 url : https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 🍒 문제 분석 벌집 모양으로 인덱스가 주위를 빙글빙글 돌며 매겨진다고 한다. 인덱스 N 값은 1번 방으로 부터 최단거리로 몇 개의 방을 들러야 할까? 단, 1번 방과 N번방을 포함하여 센다. 예를 들어 3번 방은 2개, 26번방은 4개 이다. 🥑 코드 N = int(input()) n = 1 while True: S = 1+(6*(n-1)*n)//2 # 점화식 구해..
scone
'제로베이스데이터사이언스스쿨' 태그의 글 목록 (18 Page)