[버블정렬] 처음부터 끝까지 인접하는 인덱스의 값을 순차적으로 비교하면서 큰 숫자를 가장 끝으로 옮기는 알고리즘이다. 1. 다음과 같은 리스트가 있다고 하자. [ 10, 2, 7, 21, 0 ] 2. 10과 2를 비교하여, 10이 더 크므로 자리를 바꾼다. [ 2, 10, 7, 21, 0 ] 3. 10과 7를 비교하여, 10이 더 크므로 자리를 바꾼다. [ 2, 7, 10, 21, 0 ] 4. 10과 21을 비교하여, 21이 더 크므로 자리를 바꾸지 않고 이제 21과 0을 비교하여 자리를 옮긴다. [ 2, 7, 10, 0, 21 ] 5. 다시 앞에서부터 2와 7을 비교한다... 5. 다음이 한 사이클이다. 이를 리스트의 요소 갯수만큼 반복하면 모든 값들이 정렬 되어있을 것이다. 6. 단, 다음 사이클을 ..
제로베이스
[순위] 수의 크고 작음을 이용해 수의 순서를 정하는 것을 순위라고 한다. 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 ==..