IT 180

[vi 명령어] 되돌리기

Undo 되돌리기 윈도우 환경에서는 쉽게 사용하는 ctrl + z: 되돌리기 ctrl + y: 앞으로 리눅스 환경에서 사용하는 vi 편집기도 되돌리기를 지원한다. - 관련 명령어는 명령 모드(esc)에서 사용 가능 u: 입력모드 시작 시점까지 모두 되돌리기 U: 바로 전에 입력한 것 되돌리기 (입력 모드가 같은 줄에서 끝나야 함) ctrl + r: 되돌리기 취소 (앞으로) 이렇게만 보면 헷갈린다. 따라서 예시로 다시 설명한다. 처음 vi test로 아무것도 없는 화면에서 시작한다. 1. 한 번의 입력모드로 한 번에 적었을 때 Hi Hello - u: 입력모드 시작 전 상태로 돌아감. 빈 화면 - U: 반응 없음. Hi Hello 형태 그대로 유지 - ctrl + r > u 이후: 다시 Hi Hello가 ..

IT/Linux 2021.02.17

DNS ip 주소 확인

문제 - AWS NLB는 2개의 고정 IP가 붙음 - 그러나 AWS에서 제공하는 LB는, DNS name으로 제공해준다. - console에서는 LB의 IP를 어디서 찾아야 하는지 도저히 모르겠다. - AWS에서 제공해준 LB의 DNS name은 가공하기 전까지는 매우 길고 복잡해서 실제 사용하기에 어렵다. 해결방법 - DNS의 IP를 확인한다. nslookip 도메인 이후 telnet과 같은 명령어에 IP를 이용할 수 있다.

[이코테] 큰 수의 법칙.python

문제 - N의 길이 만큼 숫자 배열 - M만큼 숫자 배열의 숫자를 더함 - 숫자는 반복 할 수 있으나, K만큼 연속적으로 반복 가능 - 가장 큰 수 찾기 예시) N=5, M=8, K=3 list = [2, 4, 5, 4, 6] 일 때, 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5를 더해 가장 큰 수인 46을 만들 수 있음 K = 3이므로 가장 큰 수인 6이 3번 반복 후 그 다음 큰 수인 5가 한 번 나옴 -> 다시 가장 큰 수인 6을 K만큼 더해줌 해설 및 코드 - 그리디로 가능 - 반복문을 통해서도 가능 - 식을 세워서 문제를 풀 수 있다. N, M, K = map(int, input().split()) arr = list(map(int, input().split())) arr.sort(re..

IT/알고리즘 2021.02.12

[리눅스마스터 1급] 리눅스 실무의 이해 - 필기 오답노트

2020.10.10 번호 문제 답 해설 1 - 공개 소프트웨어 중 하나 - 수정된 소스 코드에 대한 공개나 어떠한 표시를 하지 않음 BSD - BSD는 소스 코드 공개 의무 X - MPL, GPL, LGPL: 소스 코드 공개 의무 O 2 - 다른 종류에 속하는 리눅스 배포판 Vector Linux - Vector Linux, openSUSE, Slackware: 슬랙웨어 계열 - Ubuntu, Linux Mint, Elementar OS, Chrome, Raspbian: 데비안 계열 - RHEL, Fedora, CentOS, Oracle Linux, Scientific Linux: 레드헷 계열 - Android, AOSP: 안드로이드 계열 - 하모니카, 넘버원 리눅스, 구름OS: 국내 리눅스 배포판 3 ..

IT/Linux 2021.02.12

[백준] 책 나눠주기 9576.python

문제 - 총 N권의 책을 최대 몇 명에게 나눠 줄 수 있는지 찾는 문제 - 학생들은 a에서 b까지 책 번호 내에서 책을 받는다. 해설 및 코드 참고 블로그: steady-coding.tistory.com/230 [BOJ] 백준 9576번 : 책 나눠주기 (JAVA) 문제 백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는 책을 구분하기 위해 각각 1부터 N까 steady-coding.tistory.com - 해당 문제는 그리디로 해결이 가능하다. - b로 정렬 후 a로 정렬한다. - 그 이유는 해당 블로그에 잘 나와있다. # 그리디 T = int(input()) for _ in range(T): N, M = ..

IT/알고리즘 2021.02.11

[백준] 좌표정렬하기 11650.python

문제 - x랑 y를 따로따로 정렬하면 된다. - 간단한 문제 해설 및 코드 - 간단하지만 python 초보는 열심히 틀렸다. - 아무래도 띄어쓰기 문제인듯... 백준 문제가 좀 아리까리했다. N = int(input()) points = [] for _ in range(0,N): [x, y] = map(int, input().split()) points.append( [x, y] ) points = sorted(points) for i in range(N): print(points[i][0], points[i][1]) Python 문법 정리 - 원하는 변수를 list로 담기 [x, y] = map(int, input().split())

IT/알고리즘 2021.02.10

[백준] 단어정렬 1181.python

문제 - 입력받은 문자들을 1. 크기 2. 알파벳 순서로 정렬하는 것이다. 해설 및 코드 - java로 생각했을 땐, priorityQueue를 커스텀하여 이용했을 것이다. 첫 번째로 길이를 비교하고, 같은 경우에는 알파벳으로 비교 - Python의 prioirtyQueue를 검색해보니 heapq를 사용하긴 했지만, 내가 원하는 custom을 하는 것이 불편하였다. - 결국 문제를 검색해서 답을 보고 해버렸다ㅠㅠ 문법이나 열심히 알아야겠다. import heapq N = int(input()) arr = [] # 단어의 길이와 단어 담기 for _ in range(0, N): word = str(input()) arr.append((len(word), word)) # 중복 제거 arr = list(set..

IT/알고리즘 2021.02.09

[백준] 보물 1026.python

문제 - A배열과 B배열을 곱했을 때, 가장 작은 S를 찾으면 된다. - 각 배열에 담긴 것은 한 번씩만 사용하면 된다. - A는 재배열이 가능하지만, B는 재배열이 불가능하다. 해설 및 코드 - 조건으로 B는 재배열이 불가능하다고 나와있지만, 사실상 가장 작은 S를 찾으면 되기 때문에 큰 상관이 없다. - 가장 큰 숫자와 가장 작은 숫자를 곱해주면 된다. - A는 오름차순으로, B는 내림차순으로 정렬 후 두 배열을 곱한 숫자를 S에 더해주면 된다. N = int(input()) A = list(map(int, input().split())) B = list(map(int, input().split())) # 배열 정렬 A.sort() B.sort(reverse=True) S = 0 for i in ra..

IT/알고리즘 2021.02.09

[백준] 에디터 1406.python

문제 - 입력받은 문자열을 명령어를 통해 수정하는 문제이다. - 커서 _ a _ b _ c _ d _ 문자열의 길이(L) + 1의 위치 개수를 가진다. - 커서이동: L(왼쪽), D(오른쪽) - 문자: B(커서 왼쪽 삭제), P x('x' 문자를 커서 왼쪽에 삽입) 해설 및 코드 - 처음에는 list의 insert, pop을 이용해서 문자열의 in/out을 실행했다. - 시간초과 발생 list의 insert(N), pop(N)의 시간복잡도는 O(n)을 가진다. 해결방법 - stack, pop의 경우 in/out의 시간복잡도는 O(1)이다. - 내가 원하는 위치(N)에 숫자를 넣기 위해서는 커서를 기준으로 left / right로 stack을 나눈다. - python의 경우 stack이든 queue든 li..

IT/알고리즘 2021.02.07