정렬 4

[백준] 17140 이차원 배열과 연산 python

https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 시뮬레이션 문제이다. 매 단계마다 arr[R][C] == K인지 확인했고 다른 경우 정렬 연산을 하도록 구현했다. 정렬 연산은 다음과 같이 진행된다. 1. defaultdict로 수를 카운트한다.(등장횟수) 2. 수의 등장횟수와 숫자의 크기를 기준으로 오름차순으로 정렬 3. 행 or 열 갱신 3-1. 짝수 자리엔 수와 홀수 자리에 등장횟수를 넣어서 최대 100개까지 갱신한다.(0부터 ..

STUDY/Algorithm 2022.03.25

[C/C++] 버블 정렬, 카운트 정렬

알고리즘 복습과 C 공부를 동시에 하기 위해 예전에 했던거 복습 1. 버블 정렬 배열 내에서 인접한 두자리를 비교하면서 정렬하는 방법이다. 정렬중에 가장 쉽게 구현할수 있다. 여기서 가끔 헷갈리는 건 이중 반복문에서 범위를 지정하는 부분이다. 항상 앞에서부터 차례대로 비교하면서 뒤에 차곡차곡 쌓는 느낌으로만 기억한다. (바깥 반복문은 정렬할 위치를 지정하고, 안쪽 반복문에서는 실제 비교 및 정렬을 수행한다.) void bubble(int *arr, int arr_size) { int tmp; for (int i = arr_size - 1; i >= 0; i--) { for (int j = 0; j arr[j+1]) { tmp = arr[j]; arr[j] = ..

STUDY/C, C++ 2021.06.03

[프로그래머스] LEVEL2 H-Index, python3, 정렬

문제가 이해가 안되었다. 질문하기에도 나랑 비슷한 사람들이 많아서 도움을 얻었는데 해당 테스트 케이스를 보니 이해가 갔다. test case: [22, 42] return value:2 알고리즘 공부할때 문제를 읽고 이해하는 능력도 많이 중요한것 같다. 1차 시도 def solution(citations): answer = 0 max_cit=max(citations) for n in range(max_cit): tmp=list(i for i in citations if i>=n) length=len(tmp) if n>length: answer=n-1 break return answer

STUDY/Algorithm 2019.11.14

[프로그래머스] LEVEL2 가장큰수, python3, 정렬

1차 시도 from itertools import permutations def solution(numbers): answer = '' ## permutation of elements of numbers numbers=list(map(str,numbers)) tmp=list(map(''.join, permutations(numbers))) answer=max(tmp) return answer 논리는 맞는거 같은데 permutation할때 시간이 오래 걸리는듯 하다. 2차시도 def solution(numbers): answer = '' tmp_nums=[] max_len=len(str(max(numbers))) for num in numbers: length=0 len_num=len(str(num)) t..

STUDY/Algorithm 2019.11.06