본문 바로가기

전체 글

(235)
[프로그래머스] 멀쩡한 사각형(python) https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같..
[프로그래머스] K번째수(python) https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다..
[프로그래머스] 완주하지 못한 선수(python) https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. ✔️ 제한사항 마라톤 경기에 참여한 선수의 수는 ..
[백준] 4375번: 1 (java, python, 나머지 연산) https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 🗒 코드 java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextInt()) { int n = sc.nextInt(); int num = 0; for (int i = 1;i
[백준] 2609번: 최대공약수와 최소공배수(java, python) https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 💡주의 사항 유클리드 호제법을 사용함에 주의하자. 🗒 코드 java import java.util.Scanner; public class Main { static int gcd(int a, int b) { while (b != 0) { int r = a % b; a = b; b = r; } return a; } static int lcm(int a, int b) { // Least common multiple return a * b / gcd(a, b); } pu..
s3 데이터 가져와서 DB에 import 하기 (pandas, boto3) s3에 올려둔 csv 데이터를 가져와서 pandas로 데이터프레임 형식으로 데이터를 읽은 후, 원하는 테이블에 import하고 싶었다. 일단 boto3을 사용하여 s3 데이터를 불러온다. s3 데이터를 가져오기 위해선, 접근 키 아이디와 비밀번호, 그리고 지역이 필요하다. 접근 키 아이디와 비밀번호는 AWS 계정을 생성한 후 IAM에서 사용자를 생성하는 과정에서 확인할 수 있다. 참고로 IAM은 AWS 리소스에 대한 접근을 안전하게 제어할 수 있는 서비스다. 아무튼 IAM을 생성하고 나서, 해당 키를 csv 파일로 보관해놨기 때문에 쉽게 찾을 수 있었다. 다운을 안받았다면 AWS 콘솔에서 IAM을 검색하고 사용하면 된다. 지역도 같이 확인한다. 혹시 지역이 정확히 기억이 안난다면, 다음 페이지를 확인하자..
Big-O cheat sheet Big-O(빅오)는 시간 및 공간 복잡도를 나타낼 때 많이 사용한다. 특히 가장 최악의 경우를 고려한 표기법이다. 시간 복잡도를 표현할 때 가장 큰 형태(최고차항)의 값을 남기면 된다. N이 충분히 큰 값이 되어 많은 연산을 한다고 했을 때, 뒤에 더해지는 N의 루프 시간은 그리 중요하지 않기 때문이다. 📌 기본 자료구조 시간 복잡도(Big-O) 자료구조 접근(Access) 검색(Search) 삽입(Insertion) 삭제(Deletion) 배열 O(1) O(n) O(n) O(n) 스택 O(n) O(n) O(1) O(1) 큐 O(n) O(n) O(1) O(1) 해시 테이블 N/A O(1) O(1) O(1) 이진 트리 검색 O(nlogn) O(nlogn) O(nlogn) O(nlogn) 📌 기본 정렬 알고..
4장. 쿠버네티스를 이루는 컨테이너 도우미, 도커 ✏️ 도커란? 도커와 쿠버네티스는 자주 엮어서 언급되곤 한다. 이는 쿠버네티스를 이루는 기본 오브젝트가 파드고, 파드는 컨테이너로 이루어져 있으며, 컨테이너를 만들고 관리하는 도구가 도커이기 때문이다. 파드는 워커 노드라는 노드 단위로 관리하며, 워커 노드와 마스터 노드가 모여 쿠버네티스 클러스터가 된다. 또한 파드는 1개 이상의 컨테이너로 이루어져 있다. 파드는 쿠버네티스로부터 IP를 받아 컨테이너가 외부와 통신할 수 있는 경로를 제공하기도 한다. 파드가 컨테이너들이 정상적으로 작동하는지 확인하고 네트워크나 저장 공간을 서로 공유하므로 컨테이너들은 마치 하나의 호스트에 존재하는 것처럼 작동할 수 있다. 위 그림과 같이 컨테이너를 돌보는 것이 파드고, 파드를 돌보는 것이 쿠버네티스 워커 노드이며, 워커 ..