목록프로그래밍(Programming) (30)
데이터 엔지니어
WSL2 Ubuntu 20.04에서 psotgresql 설치와 세팅하는 방법을 포스팅하겠습니다. 1. postgresql 설치 sudo apt-get update sudo apt-get install postgresql postgresql-contrib # 특정버전 설치 # sudo apt-get install postgresql-11 apt show postgresql 명령어를 치면 기본적으로 다운받는 psql에 대한 정보를 출력해 줍니다. # psql 설치 확인 service postgresql status # down 상태이면 start해주어야 함 service postgresql start 2. psql 접속 설치하면 기본적으로 ubuntu 내에 postgres라는 user를 만들고 postgre..
문제링크: https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같�� programmers.co.kr 문제 설명 - scoville: 음식의 스코빌 지수가 담긴 리스트 - k: 스코빌 지수 조건: scoville 리스트에 모든 값이 k이상이 되게 해야합니다. 위 조건을 만족하게 하기위해 섞는 과정을 거칩니다. 몇번 섞어야하는지 리턴하면 되는 문제입니다. (조건을 만족 못할 시 -1 리턴) 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음..
문제링크: https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 문제 설명 - number: 문자열 형식의 숫자 - k: 제거할 숫자의 개수 numbers에서 k개의 수를 제거 했을 때 나올 수 있는 가장 큰 숫자를 문자열 형태로 return해주면 됩니다. ex) number = "12341234" k = 3일 때 121을 제거해 3234가 최대값이 되어 정답이 됩니다. 풀이 stack을 활용한 문제입니다. 모든 조합을 끄내서 검사할 경우 시간초과가 나올 것입니다. stack에 가장 높은 숫자만 남아있도록 pop을 해주는 식으로 작업합니다. 이 때 k 변수를 통해서 삭제(pop)해야하는 개수..
문제링크: programmers.co.kr/learn/courses/30/lessons/42586?language=python3 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 �� programmers.co.kr 문제 설명 - progresses: 작업의 진도 (100% 기준) - speeds: 작업의 속도 progress가 100이 되면 배포를 진행하는데 배포는 앞에 작업이 먼저끝나야 진행할 수 있다. 개발은 순서와 상관없이 진행되고 배포될 때 한번에 배포되는 개수를 list로 담아 리턴하는 문제입니다. - 예시 progresse..
문제링크: https://www.acmicpc.net/problem/5446 5446번: 용량 부족 팀포2 덕후 연수는 팀포2를 다운받던 도중 하드 용량이 부족하다는 것을 알았다. 이때는 침착하게 팀포2를 하지 말거나 하드를 새로 사면 되지만 불가능했고, 결국 하드에서 쓸모없는 파일을 지� www.acmicpc.net 문제 설명 - N1: 지워야 할 파일의 개수 - N1개의 파일명이 주어짐 - N2: 지우지 말아야 할 파일의 개수 - N2개의 파일명이 주어짐 rm * 명령어로 전체 삭제도 가능합니다. rm a*이면 a로 시작하는 파일명들을 전부 삭제하는 명령어입니다. 지워야하는 파일만 지우게 할 수 있는 최소의 명령어 개수를 구하는 문제입니다. ex) N1=4 N2=1 N1: BAP, BAPC.in, B..
문제링크: www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 설명 - N: 계단의 개수 - N개의 계단의 점수가 주어짐. 조건 1. 계단은 한 번에 한 계단 or 두 계단 오르기 가능 2. 연속된 세계의 계단을 모두 밟아서는 안 된다. 3. 마지막 도착 계단은 반드시 밟아야 함. 아래 그림과 같이 마지막 지점에 도착했을 때 해당 조건을 지키며 갈 수 있는 점수의 최댓값을 구하면 됩니다. 풀이 DP(다이나믹 프로그래밍) 냄새가 물씬 나는 문제였습니다. 마지막 지점을 무..
문제링크: www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 �� www.acmicpc.net 문제 설명 - T: 테스트 케이스 갯수 - N: 전화번호 개수 - N개의 전화번호가 주어짐 각 테스트 케이스에 대해서, 일관성 있는 목록인 경우에는 YES, 아닌 경우에는 NO를 출력하는 문제입니다. 일관성이 있는것은 각 번호가 어떤 번호에도 접두어로 속하지 않는 경우를 뜻합니다. ex) 911, 911234, 1023 => NO - 911이 겹치기 때문입니다. 12340..
문제링크: https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 삼성 기출문제입니다. 문제 설명 - N: 맵의 크기 (최대 20) 2048 게임처럼 숫자를 이동하여 합치는 게임입니다. 다른 점은 게임에서 처럼 랜덤으로 숫자가 추가되지 않습니다. 최대 5번 이동시켜서 얻을 수 있는 가장 큰 블록을 출력하는 문제입니다. ex) 아래 그림8 과 같은 그림을 왼쪽으로 합치면 그림9 처럼 됩니다. 이때의 정답은 8입니다. 풀이 특..