전체 글
-
Windows 11 우클릭 컨텍스트 창 스타일 변경ETC 2023. 12. 17. 13:22
WIndows11 탐색기에서 우클릭 시 이전 버전의 windows에 비해 간소화 된 컨텍스트 창이 뜨도록 변경되었으나 자주 사용하는 기능들을 사용하기 위해 한 번 더 클릭해야 하는 불편함이 있어 레지스트리를 수정하여 이전 버전과 같이 사용하고자 한다. 1. Windows key + R 로 실행창 열어 regedit 입력 2. 레지스트리에서 HKEY_CURRENT_USER\Software\Classes\CLSID 에 키 값을 추가 추가할 키 이름은 {86ca1aa0-34aa-4e8b-a509-50c905bae2a2} 이다. 3. 위에서 생성한 키에 하위에 새로운 키 값을 추가한다. 추가할 키 이름은 InprocServer32 이다. 4. 추가한 InprocServer32 키를 선택하고 오른쪽 분할창의 기본..
-
순열과 조합ETC 2022. 11. 12. 17:16
[순열 - Permutation] 순열은 뽑는 순서를 고려하여 n개의 원소 중에 r개를 뽑아 나열할 수 있는 경우의 수이다. 여기서 '뽑은 순서를 고려'한다는 말은 만약 a, b, c 3개의 원소를 뽑는다고 했을 때 a를 뽑고 b를 뽑고 c를 뽑는 경우와 b를 뽑고 a를 뽑고 c를 뽑는 경우를 각각 다른 경우로 인정한다는 말이다. 즉, {a, b, c} ≠ {b, c, a}이다. 순열 공식은 다음과 같이 간단하게 생각해볼 수 있다. ₅P₃ 을 구해보도록 하자. 5개의 원소를 가진 집합 S가 S = {1, 2, 3, 4, 5}라 할 때, 여기서 순서를 고려하여 원소를 3개씩 뽑아보자. 가장 처음 수를 뽑을 때는 {1, 2, 3, 4, 5} 중에 하나를 뽑을 수 있다. 두 번째 뽑을 수는 처음 뽑은 수를 제..
-
로지텍 MX KEYS MINI 사용기ETC 2022. 3. 19. 17:07
"키보드 자체는 그럭저럭. 그런데 비싸다." K380을 대신해 사용할 키보드가 필요하던 중 MX KEYS MINI의 발매 소식을 듣게 되었다. 와이프의 업무환경을 개선해주기 위해 MX KEYS를 구매한 적이 있는데 당시 깔끔한 디자인과 마감, 넓은 키캡, 적당한 키감 등 좋은 인상이 남아 있었기에 구매를 결정하게 되었다. 개인적으로 영문 각인 키보드를 선호하는데, 로지텍은 국내 정발 제품은 따로 영문 각인을 제공하지 않는다. 로지텍은 로컬 워런티 정책이기 때문에 국내 정발 제품이 아니라면 정식 A/S를 받을 수 없다는 문제가 있었으나, 난 영문 각인이 좋기에 A/S를 포기하고 해외 직구로 구매했다. 만약 직구를 통해 구매한 경우 부품의 수급은 https://www.replacementlaptopkeys...
-
초성 낱말 찾기ETC 2021. 12. 3. 19:11
초등학교 1학년생 딸아이의 국어 과제로 초성 낱말 찾기가 주어지는 경우가 있다. 매번 초성에 맞춰 눈빠지게 글자 찾기가 귀찮아서 초성 문자열이 주어지면 거기에 맞는 글자 조합을 출력하는 프로그램을 작성해 봤다. 주어지는 글자들을 초성별로 모은다. 초성으로만 구성된 문자열을 받아서 초성에 해당하는 문자들에 대해 production으로 초성 순서에 맞는 글자 조합들을 만들어 출력한다. from itertools import product def get_char_set(ch_list): views = list() for cl in ch_list: for c in ch_list[cl]: views.append(c) views.sort() print('입력된 글자: ' + ', '.join(views)) init..
-
빠른 리스트 객체 복사Python 2021. 11. 20. 10:12
한 줄 요약: 내부 데이터가 imutable 객체로 구성된 list type 객체의 깊은 복사가 필요할 때는 slicing을 사용하자. [mutable type과 깊은 복사의 필요성] list는 mutable type이다. 따라서 list 변수는 데이터가 존재하는 메모리 주소를 가지고 있는 셈이다. 다음 코드를 보자. L1 = [1, 2, 3] L2 = l1 print(L1) print(L2) L1 = [1, 2, 3]이고 L2에 L1을 넣었으니 L1과 L2을 각각 출력하면 동일하게 [1, 2, 3]이다. 이제 L2 [1]의 값을 10으로 변경 후 다시 L1과 L2를 출력해보자. L2[1] = 10 print(L1) print(L2) L1과 L2가 모두 [1, 10, 3]으로 변경되는 것을 볼 수 있다...
-
[BOJ] 치킨배달 (15686)Data Structure & Algorithm 2021. 10. 7. 09:56
[문제] https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net [풀이] 문제를 처음 읽었을 때 BFS를 통해 풀어야겠다고 생각했는데 그이유는 다음 두 가지다. 집과 치킨집 사이의 최단거리라는 워딩이 주어짐 주어지는 지도 정보가 2차원 배열 형태 BFS로 풀기로 정하고 세운 계획은 다음과 같다. 지도 정보를 2차원 리스트에 저장한다. 모든 치킨집 좌표 중 M개만 선택하는 조합을 생성한다. 지도 정보를 복사한다. 조합을 사용하여 복..
-
Python 실행속도 개선 방법Python 2021. 10. 4. 18:38
python 코드 최적화와 관련한 좋은 포스팅을 발견하여 참고를 위해 번역하여 정리해 놓는다. (https://towardsdatascience.com/10-techniques-to-speed-up-python-runtime-95e213e925dc) [최적화에 앞서 고려할 부분] 정상적으로 작동하는 명확하고 가독성 좋은 코드를 작성하는 것이 최적화의 전제조건이다. 명확하고 가독성 좋은 코드의 속도를 개선하는 것이 이해하기 어렵고 가독성 좋지 않은 코드를 개선하는 것보다 훨씬 쉽기 때문이다. 최적화는 비용을 수반한다. 대체로 시간복잡도와 공간복잡도는 반비례 관계가 된다. 실행시간을 줄이기 위해서는 메모리를 더 사용하게 되고 메모리 사용을 줄이고자 하면 실행시간이 늘어날 수밖에 없다. 코드 작성의 우선순위는..
-
[프로그래머스] 디스크 컨트롤러Data Structure & Algorithm 2021. 9. 28. 09:30
[문제] 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr [풀이] 문제 해결을 위해 가장 짧은 실행 시간을 얻어내도록 job 실행 순서를 스케쥴링 해야한다. 스케쥴링에는 다음 두 가지를 고려한다. 요구사항 가운데 먼저 요청된 job이 먼저 실행된다가 있으므로 job 수행 순서를 결정하는 첫 번째 기준은 "요청시각"이다. 두 번째 기준은 실행시간인데, 이 "실행시간"이 heap을 통해 스케쥴링할 대상이다. 실행시간을 기준으로 스케쥴링을 하는 이유는 하나의 job도 실행되고 있지 않는 상태에서는 가장 빨리 ..