분류 전체보기 50

99클럽 코테 스터디 5일차 TIL : 해시, 큐 문제 풀이

문제 : 교육과정 설계 코드from collections import dequeneed=input()n=int(input())for i in range(n): dq=deque(need) cl=input() for x in cl: if x in dq: if x!=dq.popleft(): print("#%d NO", %(1+i)) break else: if len(dq)==0: print("#%d YES" %(i+1)) else: print("#%d NO", %(1+i))  설명 및 개념필수과목을 큐에 넣은 후 과목설계를 한 부분이 필수과목에 속해 있는지 in을 사용하여 확인했다. 그리고 속해있다면 순서 또한 맞아야 하기 때문에 큐에..

코딩테스트 2024.07.26

99클럽 코테 스터디 4일차 TIL : 큐, 문자열 문제 풀이

문제  :: 공주 구하기 (큐)정보 왕국의 이웃 나라 외동딸 공주가 숲속의 괴물에게 잡혀갔습니다. 정보 왕국에는 왕자가 N명이 있는데 서로 공주를 구하러 가겠다고 합니다. 정보왕국의 왕은 다음과 같은 방법으로 공주를 구하러 갈 왕자를 결정하기로 했습니다. 왕은 왕자들을 나이 순으로 1번부터 N번까지 차례로 번호를 매긴다. 그리고 1번 왕자부터 N 번 왕자까지 순서대로 시계 방향으로 돌아가며 동그랗게 앉게 한다. 그리고 1번 왕자부터 시 계방향으로 돌아가며 1부터 시작하여 번호를 외치게 한다. 한 왕자가 K(특정숫자)를 외치면 그 왕자는 공주를 구하러 가는데서 제외되고 원 밖으로 나오게 된다. 그리고 다음 왕자부터 다시 1부터 시작하여 번호를 외친다. 이렇게 해서 마지막까지 남은 왕자가 공주를 구하러 갈 ..

코딩테스트 2024.07.25

99클럽 코테 스터디 3일차 TIL : 스택 , 배열 문제 풀이

문제 후위표기식 만들기중위표기식이 입력되면 후위표기식으로 변환하는 프로그램을 작성하세요.중위표기식은 우리가 흔히 쓰은 표현식입니다. 즉 3+5 와 같이 연산자가 피연산자 사이에 있 으면 중위표기식입니다.후위표기식은 35+ 와 같이 연산자가 피연산자 뒤에 있는 표기식입니다.예를 들어 중위표기식이 3+5*2 를 후위표기식으로 표현하면 352*+ 로 표현됩니다.다음과 같이 연산 최우선인 괄호가 표현된 식이라면 (3+5)*2 이면 35+2* 로 바꾸어야 합니다.▣ 입력설명첫 줄에 중위표기식이 주어진다. 길이는 100을 넘지 않는다.식은 1~9의 숫자와 +, -, *, /, (, ) 연산자로만 이루어진다.▣ 출력설명후위표기식을 출력한다.▣ 입력예제 1 3+5*2/(7-2)▣ 출력예제 1 352*72-/+   코드..

코딩테스트 2024.07.24

99클럽 코테 스터디 2일차 TIL : 스택 , 배열 문제 풀이

문제 :: 가장 큰 수 - stack선생님은 현수에게 숫자 하나를 주고, 해당 숫자의 자릿수들 중 m개의 숫자를 제거하여 가장 큰 수를 만들라고 했습니다. 여러분이 현수를 도와주세요.(단 숫자의 순서는유지해야 합니다) 만약 5276823 이 주어지고 3개의 자릿수를 제거한다면 7823이 가장 큰 숫자가 됩니다.▣ 입력설명 첫째 줄에 숫자(길이는 1000을 넘지 않습니다)와 제가해야할 자릿수의 개수가 주어집니다.▣ 출력설명가장 큰 수를 출력합니다.▣ 입력예제 5276823 3▣ 출력예제 7823  문제 분석숫자를 스택에 하나씩 넣으면서 최상단 원소가 자기자신보다 작다면 그 숫자를 빼고 자기자신을 넣는 방법을 통해 코드를 구현할 수 있다   코드num, m= map(int,input().split()) # ..

코딩테스트 2024.07.23

99클럽 코테 스터디 1일차 TIL : 복잡도 및 파이썬 기본 문법

복잡도복잡도 : 알고리즘의 성능을 나타내는 척도이다시간 복잡도 : 특정한 크기의 입력에 대해 알고리즘의 수행 시간 분석공간 복잡도 : 특정한 크기의 입력에 대해 알고리즘의 메모리 사용량 분석—> 동일한 기능을 수행하는 알고리즘이 있다면, 복잡도가 낮을수록 좋은 알고리즘이다빅오 표기법 : 가장 빠르게 증가하는 항만을 고려하는 표기법—> 빅오 표기법에서는 차수가 가장 큰 항만 남기므로 O(N^3)으로 표현된다. 앞의 계수는 무시한다—> N이 엄청 큰 수라고 생각을 해보면 된다   💡 요구사항에 따라 적절한 알고리즘 설계하기문제에세 가장 먼저 확인해야 하는 내용은 시간제한(수행시간 요구사항) 이다시간제한이 1초인 문제인 경우, 일반적인 기준은 다음과 같다 N의 범위 500 - O(N^3)인 알고리즘 설계시 ..

코딩테스트 2024.07.22

이코테 3강의 : DFS & BFS

탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 말한다대표적인 그래프 탐색 알고리즘으로는 DFS와 BFS가 있다스택 자료구조스택 자료구조 : 선입후출입구와 출구가 동일한 형태append() : 원소 삽입pop() : 원소 삭제큐 자료구조선입선출입구와 출구가 모두 뚫려 있는 터널과 같은 형태append() : 원소 삽입popleft() : 원소 삭제deque 라이브러리를 사용하는 것이 좋다!재귀함수재귀함수란 자기 자신을 다시 호출하는 함수를 의미한다모든 재귀함수는 반복문을 이용하여 동일한 기능을 구현할 수 있다DFSDFS는 깊이 우선 탐색이라고 불리며 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다**스택 자료구조 ( 재귀함수 )**를 이용한다탐색 시작 노드를 스택에 삽입하고 방문처리..

코딩테스트 2024.07.18

이코테 2강의 : 그리디 & 구현

그리디 알고리즘그리디 알고리즘 (탐욕법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다정당성 분석이 중요 —> 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토한다  구현풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제완전 탐색 문제  구현 문제 유형의 예시1. 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제2. 실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제3. 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제4. 적절한 라이브러리를 찾아서 사용해야 하는 문제  일반적으로 알고리즘 문제에서의 2차원 공간은 행렬의 의미로 사용된다 시뮬레이션 및 완전 탐색 ..

코딩테스트 2024.07.17

파이썬 문법 정리

1. 변수와 출력함수 print(a, b, c, sep=',') == 1, 2, 3 print(a, end=' ') print(b, end=' ') == 1 2 다음과 같이 원래 문자의 끝에는 \n이 있으며 end=' '를 통해 이를 삭제할 수있다 2. 변수입력과 연산자 a= input (" 숫자를 입력하세요 : ") == 숫자를 입력하세요 : a,b = input( "숫자를 입력하세요 : ").split() -->띄어쓰기를 기준으로 입력받은 값을 분리 -->다음과 같이 형을 선택하지 않는 경우 기본적으로 str 타입의 데이터로 설정된다 a, b= map(int, input("숫자를 입력하세요: ").split()) --> map은 두 개의 인수를 받는다 --> 입력받은 str을 정수화 하여 a,b에 m..

Ansible - 정의 및 설치하기

Ansible IaC 도구란? Infrastructure as a Code 의 약자로 IT 인프라스트럭처를 코드를 통해 정의하고 관리하는 개념을 뜻한다 수동으로 인프라를 구축하고 관리하는 대신 코드를 사용하여 인프라를 정의하고 프로비저닝( 필요한 하드우에어, 소프트웨어, 및 기타 리소스를 할당하고 설정하여 시스템을 사용할 수 있도록 하는 작업) 하는 것이다 IaC를 사용하면 시스템 및 인프라스터럭처의 설정, 배포 및 관리를 자동화 할 수 있다 Ansible, Terraform, Chef, Puppet과 같은 다양한 오픈 소스 도구들도 IaC 구현에 사용된다 Ansible Ansible은 IaC도구 중에서 대표적이고 널리 사용되는 도구이다 Ansible은 Red Hat 에서 개발한 오픈 소스 도구로 서버 ..

클라우드 2024.03.05

Beats - 정의, filebeat, metricbeat

Beats Beats beats는 elasticstack에서 로그데이터 수집 및 전송을 위한 경량 에이전트이다 여기서 에이전트는 주로 분산된 환경에서 데이터 수집 등의 역할을 수행한느 소프트웨어이다 beats는 가볍고 사용하기 쉬운 데이터 수집기이다 beats는 오픈소스 라이선스를 따르며 libbeat라는 프레임워크를 제공하므로 사용자들이 직접 필요한 각 비트를 구현할 수 있다 beats로 로그를 수집하고 logstash에서 필요한 추가 처리 및 변환을 수행한 후 elasticsearch로 전송하는 등의 조합이 사용되는 경우가 많다 [beats의 일반적인 동작 원리] 비트 다운로드 --> 비트 설정 파일 수정 --> 엘라스틱서치나 키바나 대시보드를 사용할 수 있도록 설정 -->비트 시작--> 키바나 대시..

클라우드 2024.02.28