전체 글 58

[10989] 수 정렬하기3(C#)

10,000보다 작거나 같은 수를 최대 천만번 input을 받아서 정렬하는 문제로 Sorting과 관련한 내장함수로는 통과 조건을 만족할 수 없다. 천만번 input을 받는 대신에 그 값의 범위가 좁은 편이기 때문에 이럴때는 계수정렬 알고리즘을 활용한다. 계수정렬(Counting Sort)? 배열의 인덱스를 특정한 데이터의 값으로 여기는 정렬 방법 배열의 크기는 데이터의 범위를 포함할 수 있도록 설정하고 각 배열의 값으로는 데이터가 등장한 횟수를 세어 입력 시간복잡도 : O(N) int N = int.Parse(Console.ReadLine()); int[] arrInt = new int[10001]; for (int i = 0; i < N; i++) { int intThisInput = int.Pars..

[18014] 나이순 정렬(C#)

단순 Sorting방식으로만 정렬해봤다면 고개를 갸우뚱 할 수 있는 문제. 제한시간 : 15mins 시간복잡도 : O(NlogN) var varN = Console.ReadLine(); int intN = varN == null ? 0 : int.Parse(varN); // Map형식으로 접근 시 input에서 키중복이 있을 수 있으니까, Tuple로 접근한다. List tList = new List(); for (int i = 0; i < intN; i++) { var vartmp = Console.ReadLine(); string strTmp = vartmp == null ? "" : vartmp; string[] arrstrTmp = strTmp.Split(' '); // 아래와 같이 Tuple.C..

[2750] 수 정렬하기(C#)

정렬 문제 중 가장 기본. 소요시간 : 8mins 30secs 시간복잡도 : O(NlogN) 나는 List의 기본 내장함수인 Sort()를 사용했기 때문에 시간복잡도 O(NlogN)을 가지지만, 중첩 for문을 활용하여 선택정렬로 구현할 경우 O(N^2)의 시간복잡도를 가지게 된다. var varN = Console.ReadLine(); int intN = varN == null ? 0 : int.Parse(varN); List intList = new List(); for (int i = 0; i < intN; i++) { var varTmp = Console.ReadLine(); int intTmp = varTmp == null ? 0 : int.Parse(varTmp); intList.Add(int..

코로나 대유행의 시대. 2022년 3월 27일부로 나도 동참!

이럴수는 없는거야 억울해 나 손 깨끗이 씻었어... - 2022.3.25 뭔가 몸이 안좋다. 온 몸에 힘이 너무 없고 몸살기운이 좀 있는 것 같다. 코와 목이 연결되는 부분이 부은 게 느껴진다. 얼마전에 동생이 감기기운이 있었고, 동생은 음성이었으니까 나도 감기정도 아닐까? 했었다. 출근하는길에 몸살약과 코감기약을 사서 먹고 일을 하고, 집으로 돌아와서 자가키트를 해봤다. 나는 나혼자 해도 코가 넘 아프도록 찌르는 것 같다..ㅋㅋㅋㅋ 목도 해보고 코도 해봤는데 음성이었다. 오 나이스.(?) - 2022.3.26 약국에서 사온 약을 먹고 그럭저럭 계속 괜찮았다. 식은땀이 계속 나긴 했지만 원래 몸살 앓으면서 약먹으면 식은땀 나고는 했으니까 별 대수롭지 않았다. 크게 아프지도 않았다. 자기소개서를 마무리 짓..

[PostgreSQL] SQLite로의 Migration 기록(1)

왠지 포스팅이 길어질 것 같아서 제목에 번호를 먼저 매겨버렸다. 이기종 DB간에 Migration이 쉽지 않다는 것은 숱하게 들었던 얘기이다. 그래서 되도록이면 안하고 싶었지만... 그러나 이번에 기존에 사용중이던 Cloud 서버를 정리하고 vm자체를 통채로 사내 Server로 옮겨오는 대공사를 마친 후 결과적으로 온프레미스 방식으로 운영방식을 전환하게 되면서, 내부사정으로 인해 데이터베이스 또한 File 기반으로 교체하는 것으로 결정이 내려졌다. 그래서 비교적 가벼운 SQLite로의 Migration을 시도하게 되었고, 그 과정을 여기에 정리해보려 한다. 그 전에 가장 먼저 고려해야할 사항이 있었다. SQLite는 Stored Procedure를 지원하는가? 아무리 구글링 해봐도 답은 No였다. 정식으..

기술공부/DB 2022.03.24

[PostgreSQL] 1. DB 최적화 - Index에 대해 조금 더 알아보자.(1)

데이터베이스를 다뤄본 사람이라면 인덱스라는 용어를 한번쯤은 들어봤을것이다. 쿼리를 계속 다루다보면 자연스럽게 인덱스라는 개념을 접하게 되는 것 같다. 내가 처음 인덱스를 접한건 대학교시절 실습 때 하나의 Query set을 돌려보면서였는데, 쿼리를 자세히 살펴보니 Create table 뒤에 Index를 설정하는 쿼리가 따라붙어있었다. 이게 뭔 역할을 하는건지는 모르겠지만 테이블 설정을 위해서 꼭 필요한건가보다, 하고 넘어갔던 것 같다. 지금은 Index가 뭐고, 왜 설정해야 하는지는 알지만 내가 과연 그래서 적절히 잘 활용하고 있는가?에 대한 질문을 스스로에게 해보게 된다. 그래서 간단하게 인덱스의 정의 및 필요한 시점, 현재 내가 조금 더 집중해야 하는 부분이 어떤 파트인지를 정리해보고자 한다. 인덱..

기술공부/DB 2022.03.21

[Docker] 1. Docker 시작하기 - 설치

Docker에 대해서 들어본 건 꽤 오래 전 일이지만 그저 회사에서 적용하기 힘든 기술이거니, 생각하고 넘겼더랬다. 그런데 이제는 어딜가나 Docker가 보인다. 왜일까? 늦었지만 궁금해서 공부해보려고 한다. Docker란? 갑자기 인터스텔라의 명장면이 떠오른다. “Cooper what are you doing?” “Docking” 도커 웹페이지에서 Docker의 정의를 살펴보면 이런 의미에서 이름이 Docker이지 않을까 싶어진다. 도커는 정확히 뭘까? 도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나..

블로그를 시작했다.

10년전, 20년전 학교 다닐때에도 나는 스크랩 잘하는 친구들이 되게 부럽고 신기했다. 어떻게 저렇게 기사나 잡지나 영화표나... 이런걸 스크랩핑 할 생각을 하는걸까? 그것도 저렇게 예쁘게 잘.. 나도 이런걸(?) 아예 안 한건 아니다. 일기는 나름 꾸준히 썼으니까. 그래서 몇년도 몇월쯤 어떤 영화를 봤는지, 그 때의 나는 그 영화를 보고 어떤 생각을 했는지 일기에서 볼 수 있다. 그런데 20대 중반즈음 가서는 그것마저도 귀찮아서 영화표를 일기장에 때려 넣기 시작했다ㅋㅋㅋ 지금 돌아보며 생각하면 좀 아쉽네. 지금은 단순 생각 정리이고 그냥 그런 감상평일지라도 10년 후의 나에게 과거의 내 생각을 읽는 재미를 줄 수 있었을텐데. 그래서 이제부터라도 내가 어떤 생각을 하면서 살고 있는지를 적어보려고 한다. ..

728x90
반응형