목록sort (13)
라떼는말이야
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cEw4Lt/btree5gC4WT/Ok1vDpaBcSdCuw3R8h6xok/img.png)
캡처를 좀 늦게했지만 8번째로 풀이했습니다!! 1~2단계 수준인 것 같은데 확실히 저번 주 문제보다 쉬웠고, 사람들의 풀이도 빠르네요 [다른 사람 풀이]에서 MANGBAAM을 발견하면 추천 한 번씩 눌러주세요..ㅎ ※ 전체 소스코드는 가장 밑에 있습니다. 문제 설명 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부여한 표입니다. 예를 들면, SQL의 SI 직업군 언어 점수는 3점이지만 CONTENTS 직업군 언어 점수는 2점입니다. SQL의 HARDWARE, PORTAL, GAME 직업군 언어 점수는 0점입니다. 직업군 언어 점수를 정리한 문자열 배열 table, 개발..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7XQlh/btrdopOusgO/7uXEikPSkxQcoEg6H9aao1/img.png)
문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 나의 풀이 아주 간단한 문제 같아 보이지만 정답률이 23%에 그치는 것을 보면 많은 사람들이 의외의 어려움을 겪는 문제인 것이다. 가장 큰 문제는 메모리이다. 8MB 제한인데 10,000,000개의 숫자를 모두 배열이나 리스트에 담아 정렬을 하려면 40MB의 메모리는 잡아먹을 것이다. 그렇기 때문에 모든 숫자를 메모리에 담지 않고도 정렬을 할 수 있어야 한다. 나는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dt4EhC/btrcIVU70ky/hn5HycgcV5lOb0dI0s6dW1/img.gif)
계수 정렬은 특정한 조건에서 가능한 정렬 알고리즘이다. 특정한 조건만 만족한다면 현존하는 정렬 알고리즘 중 기수 정렬과 더불어 가장 빠른 알고리즘 중 하나이다. 계수 정렬의 시간 복잡도는 무려 O(N + K)이다. (N: 데이터의 개수, K: 데이터 중 최대값) 계수 정렬의 조건 데이터의 크기 범위가 제한된 경우 ex) 0 ~ 100 까지의 점수를 정렬하는 경우 데이터가 양의 정수인 경우 데이터가 실수인 경우 무한의 범위를 가질 수 있으므로 1번 조건에 부합하지 못함 가장 큰 데이터와 가장 작은 데이터의 차이가 1,000,000을 넘지 않는 경우 필수적인 조건은 아니지만 차이가 클 수록 메모리의 사용이 많아짐 계수 정렬의 정렬 방법 계수 정렬은 버블 정렬, 병합 정렬, 선택 정렬, 삽입 정렬, 퀵 정렬 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/D6OLm/btrcStoubdL/2PsOPMqHXDmfGu634VL4DK/img.gif)
퀵 정렬은 이름에서 알 수 있듯이 정렬 알고리즘 중 속도가 빠른 알고리즘이다. 이해가 쉽고 간단한 정렬 알고리즘인 선택 정렬과 삽입 정렬의 시간 복잡도가 O(N^2) 인 것에 비해 퀵 정렬의 평균 시간 복잡도는 O(NlogN)이다. 아이디어는 다음과 같다. 기준이 되는 데이터인 pivot을 하나 선택한다. 일반적으로 가장 많이 사용되는 것은 주어진 array의 첫 번째 요소이다. (array[0]) pivot을 기준으로 pivot 보다 작은 데이터와 pivot보다 큰 데이터로 구분한다. pivot을 pivot보다 작은 데이터와 pivot보다 큰 데이터 사이에 위치시키면 pivot의 위치가 결정된다. [pivot 이하] [pivot] [pivot 초과] pivot보다 작은 데이터와 pivot보다 큰 데이터..
www.notion.so/1-53f6454e143a4d339330f0e71b381b67 ✔︎ 미션 1.숫자 애너그램 찾기 ✔︎ 미션 1. www.notion.so ✔︎ 미션 1. 1. 미션 제목 숫자 애너그램 찾기 2. 지시문 ‘애너그램’이란 문자를 재배열하여 다른 뜻을 가진 단어로 바꾸는 것을 말합니다. 예를 들면 영어의 ‘tea’와 ‘eat’과 같이, 각 단어를 구성하는 알파벳의 구성은 같지만 뜻은 다른 두 단어를 말합니다. 우리말에는 ‘문전박대’와 ‘대박전문’과 같은 예를 들 수 있습니다. 우리는 문자 대신 숫자를 이용해서 애너그램을 찾는 프로그램을 만들어봅시다. 5자리의 숫자 1쌍이 입력으로 주어지며 애너그램일 경우에는 “True”를 아닐 경우에는 “False”를 출력하도록 합시다. 숫자를 입력 ..