전체 글

·Linux
리눅스 명령어에는 다양한 필터가 존재한다. (grep이나 sed 등등..)그러나 조금 더 복잡한 패턴을 검색에 사용하고 싶을 때 정규표현식을 사용! ex) can, man, fan, dan, ran, pan 중 can, man, fan만 검색하고 싶다면 [cmf]an 으로 입력 가능ex) 휴대전화번호 010-xxxx-xxxx을 검색하고 싶은 경우010-[0-9]{4}-[0-9]{4} 또는 010-\d{4}-\d{4}- [0-9]와 \d는 같은 개념- \d{4} 숫자가 네 번 연달아 등장해야 함   Regex patterns - \d : 숫자 하나를 지정함- \D : 숫자가 아닌 문자를 지정   무튼 위 정규표현식을 연습하기 위해 다음 사이트에서 exercise를 풀어보았다. https://regexone..
·Linux
Vi 란?vi(or vim) - Vi IMproved, a programmer's text editor콘솔 환경에서 가장 보편적으로 사용 가능한, 다양한 기능을 제공하는 텍스트 편집기vim # 새로운 파일 생성vim [filename] # 파일 열기  세 가지 (명령, 입력, 라인 명령) 모드 vi 에디터를 처음 실행하여 진입하게 되면 명령 모드로 들어가게 되는데, 이 상태에서는 편집을 불가하며 열람만 가능하다.여기서 입력을 하고자 할 때에는 i 또는 a를 눌러 입력 모드로 진입할 수 있고 이때 하단에 -INSERT- 문구가 뜸입력 모드에서 탈출하고 싶다면 esc 를 눌러서 탈출할 수 있다. 반대로 라인 명령 모드인 ex 모드로 진입하려면 : 을, 탈출하려면 esc나 엔터를 누르면 된다.ex 모드에서..
·Python
N = int(input())Alst = list(map(int, input().split()))M = int(input())Blst = list(map(int, input().split()))for i in range(len(Blst)): if Blst[i] in Alst: print(1) else: print(0) 일단 정렬 문제라서 위와 같이 작성하면 안될 것 같았지만, 혹시나해서 테스트해봤더니 역시나 시간 초과 오류로 틀렸다.적절한 정렬 알고리즘을 사용해야 시간을 줄일 수 있는 것 같았음 일단 찾아보니 리스트에서 in 연산자를 사용하는 것을 리스트에서 특정 값을 찾을 때 선형 탐색을 하며, 시간 복잡도는 O(N)으로서 위 코드를 실행할 때의 전체 시간 복잡도는 O(M*N)이다. 문제에서..
·Python
import sysN = int(input())put = sys.stdin.read()lst = sorted(list(map(int, put.split())), reverse=False)for k in lst: print(k) 숏코딩으로 한줄로 입력 + 리스트화 + 오름차순 정렬까지 한 뒤, 마지막에 for문으로 오름차순으로 정렬되어 있는 단어들을 순서대로 출력해주는 코드이다.매우 쉬운 문제!
·Python
이 문제도 순탄하게 네 가지 기능 다 처리할 수 있을 줄 알았는데, 세 번째 기능인 최빈값(mode) 구하는 과정을 구성하는 것이 다소 까다로웠다. 아래는 내가 처음에 작성했던 최빈값 코드 def mode(): arr = [0]*(max(data)+1) # 숫자 출연 횟수 리스트 (이 리스트의 인덱스i 가 출연 숫자와 동일함) for i in data: arr[i] += 1 modes = [i for i, c in enumerate(arr) if c == max(arr)] # i는 인덱스이자 출연 숫자를 의미, c는 해당 숫자의 출현 횟수 if len(modes) > 1: # 최빈값이 여러 개일 경우 두 번째로 작은 값 반환 modes.s..
·Python
문제가 너무 쉬워보여서 그냥 5분컷 할 수 있는 문제인 줄 알았는데..그냥 나의 바보력을 한 번 더 인증할 수 있었던 문제였다.파이썬 숏코딩 좀 더 연습하고 함수들도 더 공부해야 할 듯하다..  import sysN = int(input())input = sys.stdin.readword = input().splitlines()word.sort(key = len) # 길이 순 정렬word.sort() # 사전순 정렬 for i in word: print(i) 위와 같이 sys.stdin.read로 입력받은 리스트에 대해서 key=len 옵션으로 정렬하고, 다음에 sort()로 한 번 더 정렬하면 위와 같은 (틀린)결과가 나온다.이는 문자열을 먼저 길이 순으로 정렬한 뒤에, 사전 순으로 정렬하면 각각..
여백 ::
The Orbit of Midnight Oil