본문 바로가기
반응형

블로그 글161

[ Ubuntu 삽질 ] 사용가능한 용량이 실제 용량과 다를때, LVM 확장 // 상황 아주 국한된 상황에서 쓸 수 있는 방법이다. 그리고 자주 발생하기 때문에 알아두면 좋다. 우선 df, du, 모두가 내가 산 저장장치의 용량보다 작은데 lsblk, fdisk -l 과 같은 명령어로 보면 또 내가 산 용량이 보인다. 컴퓨터를 사고 나서 추가 저장장치를 연결한 적이 없으며 그냥 처음에 하나 사서 연결했는데 200GB정도밖에 보이질 않는다. 이럴 경우 해결방법이다. // LVM 우선은 우분투를 설치할때 LVM이라는 녀석을 설정하게 되는데 이걸 잘못 설정하면 200GB 정도밖에 사용을 못하는 상황이 발생한다. 그래서 LVM설정하는 방법을 쭉 찾아보면 너무 자료가 어려워 보인다. 그런데 # 최대 사이즈로 my_LV확장 sudo lvextend -l +100%FREE /dev/my_LV.. 2021. 4. 24.
[ Ubuntu 삽질 ] 우분투 BusyBox initramfs 파티션 오류 해결방법 // 바쁘신 분들을 위해 1. 우분투 라이브 usb를 만든다. 2. fsck 를 통해서 파일시스템 검사 및 복구를 해 주면 된다. 라이브 usb가 뭔데? fsck 가 없는데?? 그렇다면 아래를 읽으면 된다. // 1. 상황 우분투를 처음 설치할때 파티션 설정을 LVM으로 했었다. Logical Volume Manager의 약자로 파티션을 나눌때 Physical한 영역으로 나눠서 관리하는 것이 아닌 Logical한 영역( 프로그래머블한? )으로 관리한다는 이야기였다. 그러니까 OS를 지우고 새로 깔지 않아도 심지어 동작중인 서버를 끄지 않더라도 파티션을 조절할 수 있는 기능이었다. 그땐 아무것도 모르고 했지만.. 그런데 설치단계때 이 LV의 default가 200GB인것을 모르고 그냥 넘어가버렸다. 내 저.. 2021. 4. 24.
[ Codility 코딜리티 ] Lesson 5 PassingCars Python 파이썬 풀이 // 문제 요약 동쪽으로 가는 차량을 0, 서쪽으로 가는 차량을 1 이라고 할때 N개의 1과 0으로 구성된 A중에서 지나간 차량의 수를 구해라 단 지나간 차량이란 0 1e9: return -1 return passing_cars P가 반드시 Q보다 작고 A[P]가 반드시 0이어야하는 점을 근거로 A[P] == 0 이면 P 이후의 모든 1의 개수를 리턴해라 라는 문제로 볼 수 있다. 여기서는 친절하게도 0과 1로 값을 주기 때문에 군더더기 없이 깔끔하게 풀 수 있다. 2021. 4. 17.
[ Codility 코딜리티 ] Lesson 5 MinAvgTwoSlice Python 파이썬 풀이 // 문제 요약 주어진 array A에 대해서평균이 가장 낮은 subarray의첫번째 index를 return해라 // 문제 풀이 머리가 많이 아픈 문제다.답을 한번 알고나면나올때마다 풀 수 있지만답을 알기전까지는 결코 풀 수 없다... 구글링을 통해서 많은 풀이를 봤는데다들 비슷비슷하게 푼 것으로 봐서이게 거의 유일한 풀이가 아닐까 싶다. 우선 subarray와 subsequence 부터 알아야한다.subarray는 기존의 array에서 slicing하여만드는게 가능하고subsequence는 기존의 array를 스캔하여원하는 값만 모아둔 것을 말한다. 그러니까[ 1, 3, 5, 7, 9 ]에서[1, 3]이나 [7, 9]는 subarray[ 1, 5, 9 ]는 subsequence이다. 어떻게 생각해도 .. 2021. 4. 17.
[ Codility 코딜리티 ] Lesson 5 GenomicRangeQuery Python 파이썬 풀이 // 문제 요약 DNA는 A,C,G,T라는 문자들로 구성된 S라는 긴 string으로 나타내 진다. A,C,G,T는 각각 1,2,3,4 의 impact factor를 가진다. S의 길이가 양의 정수 N이고 M개의 Query인 P,Q가 요청될때 S[P[K]] 이상 S[Q[K]] 이하의 가장 작은 impact factor는 얼마인가? 쿼리의 길이가 M 이므로 길이가 M인 배열로 반환하라. // 문제 풀이 아주 전형적인 Prefix sum algorithm 문제다. Prefix sum 알고리즘은 알면 풀고 모르면 못푸는 전형적인 문제라고 생각한다. 그러니까 아주 긴 데이터로 부터 아주 긴 쿼리가 요청될때는 O(M * N)이 되므로 사실상 O(N**2) 보다 더 커질 수도 있다. 따라서 이걸 O(N+M)까지 낮.. 2021. 4. 17.
[ Codility 코딜리티 ] Lesson 5 CountDiv Python 파이썬 풀이 // 문제 요약 A, B, K 세 정수가 주어지면 A 이상 B 이하의 정수 중 K의 배수는 몇개인지 구해라. // 문제 풀이 이 문제는 일종의 기믹을 쓴다. 수학적인 특징을 이용하는 것인데 어떤 구간을 K마다 자르면 완전한 subarray에는 반드시 1개의 K의 배수가 존재한다는 특성을 이용한다. 즉 주어진 구간의 길이를 K로 나눠서 마지막에 남는 나머지가 있다면 그 나머지 안에 K의 배수가 있는지만 검사해서 리턴하면 되는 방식이다. 코드부터 보자. # you can write to stdout for debugging purposes, e.g. # print("this is a debug message") def solution(A, B, K): # write your code in Python 3.6.. 2021. 4. 17.
반응형