일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- network
- 독서
- swea
- 알고리즘
- 문제풀이
- 자료구조
- c++
- db
- Database
- data structure
- 운영체제
- cs
- 데이터베이스
- algorithm
- Programmers
- Computer Science
- D2
- algogritim
- language
- 백준
- BOJ
- 법의학
- 재테크/투자
- SW Expert Academy
- D3
- OS
- 프로그래머스
- 감상문
- 네트워크
- LeetCode
- Today
- Total
목록전체 글 (144)
선택은 나의 것
문제 Programmers String, Date : https://programmers.co.kr/learn/courses/30/lessons/59409 코딩테스트 연습 - 중성화 여부 파악하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 접근 CASE문은 특정 값에 다른 값을 매칭시킬 때 사용한다. CASE WHEN ~ THEN ~ ELSE ~ 다음으로 ORDER BY를 통해 ANIMAL_ID 순으로 조회해준다. 코드 SELECT..
문제 BOJ 1411 : https://www.acmicpc.net/problem/1411 1411번: 비슷한 단어 첫째 줄에 단어의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 한 줄에 하나씩 단어가 주어진다. 단어의 길이는 최대 50이고, N은 100보다 작거나 같은 자연수이다. 각각의 단어는 모두 다르다. www.acmicpc.net 접근 한 단어 안에서 임의의 알파벳이 등장하는 위치나 횟수가 같다면 이는 비슷한 단어이다. 나는 비슷한 단어를 찾기 위해 어떤 알파벳인가는 상관없이 이 단어가 어떤 모양을 하고 있는가를 봐주었다. ex) abaa -> 1211 ccca -> 1112 zxzz->1211 따라서 abaa는 zxzz와 비슷한 단어이다. 이런 식으로 알파벳의 종류와는 무관하게 먼저 등장하는..
문제 BOJ 10769 : https://www.acmicpc.net/problem/10769 10769번: 행복한지 슬픈지 문제 승엽이는 자신의 감정을 표현하기 위해서 종종 문자 메시지에 이모티콘을 넣어 보내곤 한다. 승엽이가 보내는 이모티콘은 세 개의 문자가 붙어있는 구조로 이루어져 있으며, 행복한 얼굴�� www.acmicpc.net 접근 승엽이의 문자를 통해 승엽이가 행복한지 슬픈지 알아내는 문제이다. 나는 python의 find를 통해 각 이모티콘의 개수를 세어 비교해주었다. 코드 s1 = input() s2 = s1 count_h = count_s = 0 while 1: num = s1.find(":-)") if num == -1: break s1 = s1[num + 3 :] count_h +..
힙 정렬(Heap Sort) 비교 방식 알고리즘(Comparisons Sorting Algorithm) 힙 정렬은 binary heap 자료구조를 이용한 정렬 방법이다. 힙 정렬을 구현하는 것은 두 가지 방법이 존재한다. 하나는 정렬의 대상인 데이터들을 힙에 넣었다가 꺼내는 원리로 정렬을 하는 방법이고, 또 다른 방법은 기존의 배열을 heap으로 만들어주는 과정을 거쳐 꺼내주는 방법으로 정렬하는 것이다. 힙에 데이터를 저장하거나 삭제하는 시간 복잡도는 O(log n)이다. 이때 정렬을 하려는 대상이 n개라면 시간복잡도는 O(N* logN)이 된다. 나는 배열을 힙의 형태로 만들어 주는 방법으로 정렬해보겠다. #include #define size 8 using namespace std; int heap[..
병합 정렬(Merge Sort) 비교 방식 알고리즘(Comparisons Sorting Algorithm) 병합 정렬은 분할정복을 이용한다. 더 이상 나누어지지 않을 때까지 반씩 분할하다가 더 이상 나누어지지 않는 때에는 자기 자신(원소 하나)을 반환한다. 항상 반으로 나누기 때문에 퀵 정렬(Quick Sorting)과 다르게 피벗(pivot)값이 필요 없고, 따라서 시간 복잡도를 O(N * logN)으로 보장할 수 있다는 장점이 있다. #include #define size 8 using namespace std; int sorted[size]; void merge(int a[], int start, int mid, int end) { int i = start; int j = mid + 1; int k..
문제 BOJ 11779 : https://www.acmicpc.net/problem/11779 11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스� www.acmicpc.net 접근 도시의 개수가 최대 1,000개이므로 BFS방식으로 풀었다. 시작 도시부터 임의의 정점 x까지 가는 경로 중 최소 비용을 가지는 방법을 갱신해 나가며 큐를 모두 비울 때까지 돌렸다. 이때 임의의 정점 x까지의 최소 비용을 저장해 줄 int 배열과 정점 x까지의 경로를 저장해줄 vector 배열을 선언해주고 이를 통해 다음 정점을 갈..