분류 전체보기

    [Python] 프로그래머스 - 입국심사

    [Python] 프로그래머스 - 입국심사

    문제: https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이분탐색 카테고리에 있는 문제였지만, 이분탐색으로 푸는 방법을 찾기까지 시간이 좀 걸렸다. '시간의 최소값'에 집중하면, 어떤 순서로 검사받든 가장 최소로 걸리는 시간을 계산하면 되는데, 심사받는 순서에 집중을 하다보니 이분탐색 풀이법이 바로 떠오르지 않았다. def solution(n, times): min_val = 1 max_val = max(times)*n answer = 0 whi..

    [Ubuntu] mysqlclient 설치 시 'get_requires_for_build_wheel' 오류 해결

    [Ubuntu] mysqlclient 설치 시 'get_requires_for_build_wheel' 오류 해결

    AWS RDS로 DB를 생성하고 Django settings.py에 관련 모듈에 대한 정보를 업데이트 해주었다. 업데이트 된 settings.py 내용을 WAS 서버에서 업데이트 해주고, 적용하려면 mysqlclient 모듈을 설치해야 했다. 그런데 AWS EC2로 만든 WAS서버에서 mysqlclient 모듈을 설치하려는데 계속 오류가 발생했다. 구글링해가며 오류를 해결했고, 그 과정을 기록해두고자 한다! 기본 정보 기본 정보 서버: AWS EC2 OS: Ubuntu 20.04 설치하려는 모듈: mysqlclient 오류 내용 ec2서버의 가상환경에서 pip install mysqlclient 명령어로 모듈을 설치하면 위와 같은 에러가 발생한다. ERROR: Command errored out with..

    [Python] 프로그래머스 - 섬 연결하기

    [Python] 프로그래머스 - 섬 연결하기

    문제: https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최소 신장 트리(MST)를 구하는 문제이다. Kruskal 알고리즘을 사용해 MST를 구해보자. def solution(n, costs): answer = 0 costs.sort(key = lambda x: x[2]) link = set([costs[0][0]]) while len(link) != n: for v in costs: if v[0] in link and v[1] in link:..

    [알고리즘] Kruskal 알고리즘

    [알고리즘] Kruskal 알고리즘

    프로그래머스에서 섬 연결하기 문제를 Kruskal 알고리즘으로 풀면서 공부한 것을 정리한 내용이다! 최소 신장 트리 (Minimum Spanning Tree)란? 먼저 Kruskal 알고리즘을 이해하기 전에 최소신장트리(MST)를 알아야 한다. MST란 간선에 가중치가 있을 때, 모든 정점을 방문하면서 비용을 최소로하는 트리를 의미한다. 이때 그래프에 사이클이 포함되면 안된다. 위 그림을 보면 가중치가 포함된 그래프가 주어질 때, 오른쪽 그림의 간선을 연결함으로써 최소 비용으로 모든 노드를 방문할 수 있는 트리가 만들어지게 된다. 최소신장트리를 구현하는 알고리즘에는 대표적 Kruskal과 Prim 알고리즘이 있다. 오늘은 Kruskal 알고리즘에 대해서만 알아보자. Kruskal 알고리즘이란? Krusk..

    [Python] 프로그래머스 - 카펫

    [Python] 프로그래머스 - 카펫

    문제: https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 보고 yellow의 약수를 나열해 문제를 풀면 되겠다고 생각했다. 곱해서 yellow 값이 나오는 약수 쌍을 구한 후, 각 쌍의 테두리 값을 구했을 때 brown과 값이 일치하는 쌍을 구하면 된다. 이때 약수 쌍을 (x, y)라고 하면, 테두리 값은 (x+1)*2 + (y+1)*2로 구할 수 있다. return값은 카페트의 총 가로, 세로 길이를 돌려주므로 (x+2, y+2)를 반환..

    [AWS] 3-Tier-Architecture 구축 #5 - RDS로 MySQL DB 생성

    [AWS] 3-Tier-Architecture 구축 #5 - RDS로 MySQL DB 생성

    아래 포스팅에서 이어지는 글입니다. https://jjung0326.tistory.com/85 [AWS] 3-Tier-Architecture 구축 #4 - Bastion Host와 WEB 계층 아래 포스팅에서 이어지는 글입니다. [AWS] 3-Tier-Architecture 구축 #3 - NAT Gateway 대신 NAT Instance를 사용해 비용 절약하기 아래 포스팅에서 이어지는 글입니다. [AWS] 3-Tier-Architecture 구축 #2 - VPC 아래 포 jjung0326.tistory.com RDS 란? AWS RDS는 서버에 직접 데이터베이스를 설치하고 관리하는 대신 AWS에서 관리해주는 관계형 데이터베이스이다. 인스턴스가 위치할 AZ(Availability Zone), Autosca..

    [Python] 프로그래머스 - 전화번호 목록

    [Python] 프로그래머스 - 전화번호 목록

    문제: https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1 def solution(phone_book): answer = True phone_book.sort(key=len) for i in range(len(phone_book)): for j in range(i+1, len(phone_book)): n = 0 while n < len(phone_book[i]): if phone_book[i][n] != phone_book[j][n]: b..

    [Python] 백준 20055번 - 컨베이어 벨트 위의 로봇

    [Python] 백준 20055번 - 컨베이어 벨트 위의 로봇

    문제: https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 구현 문제였기 때문에 문제에서 요구하는 순서대로, 잘 구현해주었다. 문제를 풀면서 주의해야할 점들이 몇가지 보였는데 다음과 같다. 주의할 점 1. 벨트 순서 사진을 보면 N+1번째 칸이 N번째 칸 밑에 존재한다. 처음에는 1~N, N+1~2N 순서로 배열을 만들었는데 1~N, 2N~N+1 순서로 배열을 만들어 주어야 한다. (예제 1, 2, 3은 맞는데 예제 4번만 틀..