백준 1431번 : 시리얼 번호
·
c++/백준
문제링크 :https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 1,000보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루�� www.acmicpc.net 문제설명 문자열이 주어졌을경우 조건에 맞춰서 정렬 하는문제. 알고리즘 1. sort 함수에서 비교 함수를 정의하여 정렬한다 - 길이가 짧은 것이 앞으로 - 길이가 같다면 문자열에 있는 숫자를 더해서 작은게 앞으로 - 더한 값도 같다면 사전순으로 정렬 코드 1234567891011121314151617181920212223242526272829303132333435363738..
백준 4936번: 섬의 개수
·
c++/백준
문제링크 : https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 문제 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사 www.acmicpc.net 문제설명 맵에서 1은 섬을 나타내고 0은 바다를 나타낸다 섬은 상하좌우 대각선 총 8방향으로 이어져있을때, 주어진 배열의 섬의 갯수를 구하여라. 알고리즘 1. DFS 를 이용하여 8방향을 탐색 하여 컴포넌트의 갯수를 출력한다. 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495..
백준 6603번: 로또
·
c++/백준
문제링크 :https://www.acmicpc.net/problem/6603 6603번: 로또 문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 www.acmicpc.net 문제설명 1. 수열이 주어지고 그 수열의 조합을 출력하면 되는문제 알고리즘 1. 재귀함수를 이용하여 수열의 조합을 출력하면됨 코드 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#include#include using na..
백준 1181번: 단어 정렬
·
c++/백준
문제링크 :https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 문제설명 1. N개의 단어가 주어졌을 때 길이가 짧은것부터 출력 2. 길이가 같은 건 사전순으로 출력하고 똑같은 단어는 하나만 출력 알고리즘 1. 비교함수를 정의 해준다 - 길이 순으로 정렬 -> 사전순으로 정렬 -> 똑같은 단어는 하나만 출력. 코드 12345678910111213141516171819202122232425262728293031323334353637#include#..
병합 정렬(merge sort)
·
c++/알고리즘 공부
병합 정렬이란 분할 정복 기법을 이용한 정렬기법 이다. 기본 개념은 일단 반으로나누고 나중에 합친다. 이것이 기본 개념이다. 시간 복잡도는 O(N*logN) 이다. 알고리즘 밑에 그림을 살펴보자 . 1. 초기 상태에서 더이상 반으로 나눌수 없을 때까지 계속 분할한다. 2. 그리고 다시 병합(merge) 할 때 크기를 비교하여 병합한다. 3. 병합을 모두 마무리하면 정렬이 완료된다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 ..
계수 정렬 (Counting sort)
·
c++/알고리즘 공부
계수 정렬 이란 단순히 '크기 기준' 으로 세는 알고리즘이다. 범위가 한정되어있을때 가장 빠른 속도를 낸다. 시간 복잡도는 O(N) 이다. 알고리즘 1. 사실 알고리즘 이라고 할것도 없다. 2. 그냥 배열에서 해당 숫자의 갯수를 센다음 3. 작은 값부터 갯수만큼 출력하면된다 .. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include int main(void) { int count[5] = { 0,0,0,0,0 }; int data[20] = { 2,3,4,1,3,5,4,2,1,3,2,4,5,1,2,3,5,4,2,3 }; // 반복문 한번으로 정렬 완료 for (int i = 0; i
ariz1623
코딩의 숲