일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- MySQL
- data_engineer
- 프로그래머스
- docker container
- 2023년 목표
- airflow webserver
- airflow architecture
- docker image
- Dynamic Programming
- terraform
- Airflow
- docker
- Python
- SQL
- Data Engineering
- Spark
- BOT
- 데이터 엔지니어
- datacamp
- hackerrank
- delete join
- leetcode
- 백준온라인저지
- dsf
- telegram
- 그리디
- 빅데이터를 지탱하는 기술
- 백준 온라인 저지
- 알고리즘
- Pseudo Lab
- Today
- Total
목록Algorithm/문제 (28)
Lim Seunghyun Space
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문제 해설 문자열 s을 n개 단위로 잘라서 압축해서 생성한 문자열의 최소 길이를 구하기 (n = 1,2,3,4,..) 나의 풀이 (Python) def solution(s): answer = 1001 for i in range(1, len(s) + 1): comp = "" count = 1 previous = "" for j in range(0..
문제 : https://www.hackerrank.com/challenges/validate-a-roman-number/problem?isFullScreen=true Validating Roman Numerals | HackerRank Use regex to validate Roman numerals. www.hackerrank.com 문제 해설 정규표현식을 이용하여 주어진 로마숫자가 유효한지 판단하는 로직 문제 풀이 (Python3) regex_pattern = r"^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$"# Do not delete 'r'. import re print(str(bool(re.match(regex_pattern, input()..

문제 https://www.acmicpc.net/problem/1904 나만의 풀이 00, 1 타일을 사용하여 수열을 생성하기 때문에 N = 1부터 케이스를 따져봤다. N = 1이면, 1 으로 총 1개의 2진 수열을 만들 수 있다. N = 2이면, 11, 00 으로 총 2개의 2진 수열을 만들 수 있다. N = 3이면, 111. 001. 100 으로 총 3개의 2진 수열을 만들 수 있다. N = 4이면, 1111, 0011, 0000, 1001, 1100 으로 총 5개의 2진 수열을 만들 수 있다. 위의 규칙에서 N = 3까지 보면, N = 2 11, 00 에서 추가되는 건 1 밖에 없기 때문에 N = 3은 N = 2 + N = 1로 생각해볼 수 있었다. 위의 규칙을 일반화 하였을 때, function(..
문제 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이다. 한나가 배추를 재배하는 땅은 고르지 못해서 배추를 군데군데 심어 놓았다. 배추들이 모여있는 곳에는 배추흰지렁이가 한 마리만 있으면 되므로 서로 인접해있는 배추들이 몇 군..
문제 정의 N에 자신의 연봉 최댓값을 보관 0부터 N까지 스티커를 이용하여 표현 1개의 팩에는 [0]부터 [9]까지 한 장씩 존재 나의 풀이 # 근우의 연봉 최댓값 N = input() S = "1" * (len(N) -1)+ "0" if len(N) == 1: print(1) else: if int(N) > int(S): print(len(N)) else: print(len(N) - 1) 자리 수가 1인 경우는 무조건 1개의 팩을 이용하기 때문에 조건을 두어 처리 1개의 팩으로 생성할 수 있는 최대 숫자 : 10 2개의 팩으로 생성할 수 있는 최대 숫자 : 110 3개의 팩으로 생성할 수 있는 최대 숫자 : 1110 위의 규칙을 이용하여 N의 자리수를 이용하여 S를 생성하고 N과 S간의 비교를 통해 스..
문제 정의 N명의 학생들의 예상 등수와 실제 등수 간의 차이 합이 최소가 되도록 한다. 예상 등수와 실제 등수 간의 차이는 절대값으로 계산한다. 1등부터 N등까지 같은 등수는 없다. 나의 풀이 # source : https://www.acmicpc.net/problem/2012 N = int(input()) ranks = [] answer = 0 for _ in range(N): ranks.append(int(input())) for index, rank in enumerate(sorted(ranks)): answer += abs((index + 1) - rank) print(answer) 예상 등수와 실제 등수 간의 차이가 최소가 되어야 하므로, 예상 등수를 오름 차순으로 정렬하여 예상 등수와 실제 등..
문제 정의 문자열 S는 0, 1 구성되어 있고, 모든 숫자가 전부 같게 만들어야 한다. 뒤집을 때 연속된 숫자인 경우, 뒤집는 횟수는 1회로 한다. 예를 들어, 00010일 시, 앞의 세 자리를 11110으로 뒤집는다면 이는 1회 뒤집는 것으로 간주 뒤집는 최소 횟수를 구하기 나의 풀이 # source : https://www.acmicpc.net/problem/1439 import sys S = sys.stdin.readline().strip() result = [0, 0] for i in [0, 1]: is_continue = False for idx, value in enumerate(S): if value != str(i): if is_continue == False: result[i] += 1 ..
문제 정의 여벌의 체육복이 있는 학생만 다른 학생에게 체육복을 빌려줄 수 있음 N번 학생은 N-1번, N+1번 학생의 체육복만 빌릴 수 있음 여벌의 체육복을 가지고 있는 학생이 도난을 당한 경우, 대여할 수 있는 체육복이 없음 -> 본인의 체육복을 이용 체육복을 이용할 수 있는 최대 학생 수를 구하는 문제 나의 풀이 # source : https://programmers.co.kr/learn/courses/30/lessons/42862 def solution(n, lost, reserve): able_lst = [0 for _ in range(n)] lost = sorted(lost) reserve = sorted(reserve) # 체육복을 가지고 있는 학생에 대한 값 변경 for i in range(..