코딩 테스트/do it! 알고리즘 코딩테스트100 022 수 정렬하기 3 첫번째 코드 계수 정렬 방법으로 푸는 코드를 작성해야 했다.. 먼저 계수 정렬에 대해 알지 못해서 책을 참고했다 생각보다 단순한 방법이었다 개수가 있는 경우에 개수만큼 원소를 추가하여 값이 있는 원소들을 있는만큼 출력하는 방식이다! import sys input = sys.stdin.readline n = int(input()) count = [0] * 10001 for i in range(n): count[int(input())] += 1 for i in range(10001): if count != 0: for _ in range(count[i]): print(i) 통과! 다음에 간단하게 풀어보면서 기억하자! 링크 https://github.com/ornni/programmers/tree/main/%.. 2024. 5. 7. 021 버블 소트 첫번째 코드 버블 소트 문제인 만큼, 버블 소트를 이용하여 정렬하면서 swap을 한 경우 1씩 결과에 저장해주는 코드를 작성한다. import sys input = sys.stdin.readline n = int(input()) A = list(map(int, input().split())) swap_count = 0 for i in range(n-1): for j in range(n-i-1): if A[j] > A[j+1]: tmp = A[j] A[j] = A[j+1] A[j+1] = tmp swap_count += 1 print(swap_count) 맞는 듯 하나 시간초과가 나타난다... 두번째 코드 책을 참고하여 진행한 결과 이 문제는 병합 정렬을 이용하여 푸는 것이다! 이때 코드는 이전 문제와 거.. 2024. 5. 7. 020 수 정렬하기 2 첫번째 코드 병합정렬을 이용하여 2개로 나눈 후 병합정렬을 진행하자는 아이디어로 출발했다! import sys input = sys.stdin.readline n = int(input()) a = [] for _ in range(n): a.append(int(input())) divide_point = n // 2 data1 = a[:divide_point] data2 = a[divide_point:] index1 = 0 index2 = 0 i = 0 answer = [0] * n # 나누어진 데이터 내 정렬 data1.sort() data2.sort() # 병합된 데이터끼리 병합정렬 진행 while data1 and data2: if data1[0] 2024. 5. 2. 019 K번째 수 (미해결) 첫번째 코드 퀵 정렬을 이해는 했지만, 코드를 구성하는 방법이 생각나지 않아 먼저 책을 참고하여 작성했다. 나중에 풀어볼 문제지만 코드 이해가 어려워 여러번 풀어볼 것 같다. 근데 문제는 이 코드가 로컬에서는 돌아가는데 백준에서는 런타임 에러 (RecursionError)로 돌아가지 않는다는 것이다... import sys input = sys.stdin.readline n, k = map(int, input().split()) A = list(map(int, input().split())) def quickSort(S, E, K): global A if S 2024. 5. 2. 018 ATM 배웠던 모든 종류의 버블을 사용해보도록 하자! 먼저 해당 문제는 삽입 정렬을 적용해보기 위한 문제이다!그리고 추가로 아래 과정을 진행한다.- 버블 정렬- 선택 정렬- sort 첫번째 코드 - 삽입 정렬 특정 범위를 골라서 해당 범위에서 target값이 어디에 위치해야하는지 찾고,해당 위치에 끼워넣는 방법이다 import sys input = sys.stdin.readline n = int(input()) A = list(map(int, input().split())) for i in range(n): target_data = A[i] left_interval = A[i+1:] for j in range(i): if target_data i.. 2024. 4. 30. 017 소트인사이드 첫번째 코드 버블을 사용하자!그러면 이전에 했던 방식으로 버블을 사용하여 오름차순을 만든 후 reverse를 적용하면 내림차순이 된다! import sys input = sys.stdin.readline A = list(input()) n = len(A) for i in range(n): for j in range(n-i-1): if A[j] > A[j+1]: temp = A[j] A[j] = A[j+1] A[j+1] = temp A.reverse() print(''.join(A)) 통과! 여기서 주의점! list(input())은 1234를 넣으면 ['1', '2', '3', '4']로 저장되는 방법이다!두번째 코드.. 2024. 4. 30. 이전 1 ··· 11 12 13 14 15 16 17 다음 728x90