본문 바로가기

분류 전체보기

(68)
[kubernetes] 쿠버네티스 설치 - Kubespray 사용하기 Kubespray 사용 GCP를 사용하여 실습 환경을 구성하였다. VM인스턴스를 만든다. Compute Engine에 접속하여 VM인스턴스를 누른 후 [인스턴스 만들기]를 선택해 가상머신 인스턴스 5개를 만든다. 3개는 마스터로 사용하고, 2개는 워크노드로 사용하기 위함이다. 가용성을 위해 마스터노드를 보통 3개 정도 사용한다고한다. 1. SSH 키 생성과 배포 - 마스터 노드인 instance - 1 서버에서 다른 원격 접속(SSH)이 가능하도록 설정 인스턴스 목록에서 를 누르면 해당 서버에 SSH로 접속할 수 있다. RSA방식으로 암호화 키를 만들겠다는 옵션을 주면서 SSH키를 생성하는 명령어는 다음과 같다. ssh-keygen -t rsa ls -al .ssh/ .ssh 디렉터리 안에 id_rsa..
[백준 5557] 1학년 python 문제 풀이 이 문제는 DP로 풀어야한다. 어떤 구조로 정보가 저장될 수 있을지 살펴보면 왜 DP로 풀어야하는지 시각적으로 알 수 있다. 0부터 20사이의 숫자만 나와야하므로 DP는 크기가 21인 배열(0포함)을 사용할 수 있다. 21개의 배열에 루프를 돌며 다음 값을 + - 해서 다음 배열에 저장해주면 된다. 이때 상근이는 20을 넘는 수는 모른다는 조건이 있으므로 배열을 넘어가는 수는 저장하지 않는다. 이를 코드로 구현하면 아래와 같다. 통과된 풀이 import sys n = int(input()) arr = list(map(int, sys.stdin.readline().split())) dp = [[0] * 21 for _ in range(n)] # 첫 번째 수는 무조건 저장해야하니까 dp[0][ar..
[Programmers] 가장 큰 수 python (정렬) 문제 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 입출력 예 접근 방법 빈 문자열로 수를 초기화 ..
[Programmers] 체육복 python (Greedy) 문제 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution ..
[Programmers] 완주하지 못한 선수 python (Hash) 문제 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한 사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 입출력 예 설명 예제 #1 "leo"는 참여자 명단에는 있지만, 완주..
[Algorithm] 가장 간단한 알고리즘 - 브루트 포스법 브루트 포스법 : brutu는 무식한, force는 힘이라는 뜻이다. 무식하게 힘으로 해결하는 방법. 즉, 가장 간단한 알고리즘으로 가능한 모든 경우의 수를 검사하는 알고리즘이다. 브루트 포스법은 문자열 검색 중 가장 가장 기초적이고 단순한 알고리즘이다. 문자열 검색 string searching 이란 ? : 어떤 문자열 안에 다른 문자열이 포함되어 있는지 검사하고, 만약 포함되어 있다면 어디에 위치하는지 찾아내는 것. 텍스트 text : 검색되는 쪽의 문자열 패턴 pattern : 찾아내는 문자열 ex. 문자열 'yena'에서 'na'를 검색하면 성공, 'bibi'에서 'na'를 검색하면 실패. 여기서 텍스트는 'yena', 'jiyun'이 되고, 패턴은 'na'가 된다. 브루트 포스법 brute fo..
[python] 문자열 관련 함수 정리 파이썬에서 문자열을 다룰 때 사용할 수 있는 함수들을 정리해보려고 한다. 멤버십 연산자 먼저, 가장 기본이되는 멤버십 연산자 membership operator를 사용해 문자열을 검색 할 수 있다. 'na' in 'yena' # yena에 na가 포함 o 인지 ? 'na' not in 'yena' # yena에 na가 포함 x 인지? pattern이 text에 포함되어있는지 boolean 값으로 반환한다. find, index 계열 함수 str클래스에 소속된 find(), rfind(), index(), rindex()를 이용하여 문자열을 검색할 수 있다. find() text = 'yenana' pattern = 'na' start = 0 # 시작 인덱스 end = len(text) # 시퀀스의 길이 ..
[Python] sys.setrecursionlimit() - 재귀 최대 깊이 설정 재귀 - sys.setrecursionlimit import sys sys.setrecursionlimit(10 ** 6) 재귀를 사용해서 문제를 풀 때 위 코드를 상단에 필수로 써주어야한다 !! 파이썬의 기본 재귀 깊이 제한은 1000회 이기 때문에 재귀 문제를 풀 때 런타임 에러가 발생할 수 있다. 특히, 코딩테스트 환경에서는 이런 에러 메시지를 볼 수 없으므로 코드의 상단에 sys.setrecursionlimit(10**6)을 작성해주면 재귀의 최대 깊이가 10**6으로 설정된다. 주의 : PyPy에서는 sys.setrecursionlimit()로 재귀의 깊이를 설정할 수 없다고 한다.

반응형