본문 바로가기

python28

[Python] 프로그래머스 네트워크 https://school.programmers.co.kr/learn/courses/30/lessons/43162?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이컴퓨터의 개수 n과 연결정보 computers가 주어질 때, 연결(네트워크)의 개수를 세는 문제입니다.DFS 를 사용해 네트워크의 갯수를 셀 수 있습니다.연결 정보를 양방향 그래프 구조로 변경해줍니다.DFS를 돌며 방문 배열을 업데이트 해줍니다.새로운 컴퓨터에서 DFS를 시작할 수 있을 때마다 answer를 추가해줍니다. DFS를 시작할 수 있다면 아직 네트워크를 만.. 2024. 9. 27.
[Python] 프로그래머스 PCCE 기출문제 공원 https://school.programmers.co.kr/learn/courses/30/lessons/340198 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이돗자리 한변의 크기가 담긴 mats, 공원의 정보 park가 주어질 때 가능한 가장 큰 돗자리를 찾는 문제입니다.돗자리를 깔 수 없는 경우 -1을 리턴해야 합니다. 주어진 변수의 크기가 크지 않으므로 조건처리를 하여 완전탐색으로 해결할 수 있습니다.우선 가장 큰 돗자리부터 평가하기 위해 내림차순 정렬합니다.가장 큰 돗자리부터, park의 모든 (행, 열)에서 시작하여 돗자리를 깔아야할 면적에 알.. 2024. 9. 27.
[Python] 프로그래머스 배달 https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이양방향 그래프에서 1번노드를 시작으로, 모든 연결 노드까지의 최단 거리를 구한 후 K 이하의 노드 갯수를 세면 되는 문제입니다. 다익스트라 알고리즘을 사용해 문제를 해결할 수 있습니다. 1. 양방향 그래프 만들기2. 다익스트라 알고리즘  다익스트라 알고리즘은 우선순위 큐를 사용해 구현할 수 있습니다.1. 모든 노드를 최대 거리(INF)로 초기화 합니다.2. heapq에 (키, 값) 형태로 넣어줍니다.. 2024. 9. 27.
[Python] 프로그래머스 PCCP 기출 - 석유 시추 https://school.programmers.co.kr/learn/courses/30/lessons/250136?language=python3# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이석유가 묻힌 땅에 대한 정보 land가 주어졌을 때 시추관으로 뽑을 수 있는 최대 석유량을 구하는 문제입니다. 구획별로 매장된 석유량을 알아내야 하므로 BFS 알고리즘을 생각할 수 있습니다.임의 열을 선택했을 때 얻을 수 있는 최대 석유량을 구하기 위해, 각 열을 선택했을 때 얻을 수 있는 석유량을 기록해줘야 합니다. 이는, 석유가 매장된 구획의 최소, 최대열을 .. 2024. 9. 26.
[Python] 백준 대피소 https://www.acmicpc.net/problem/28215 from itertools import combinationsimport sys# sys.stdin = open('input.txt')N, K = map(int, input().split())X = []Y = []for i in range(N): x, y = map(int, input().split()) X.append(x) Y.append(y)def sol(c): b = 0 for h_idx in range(N): a = 100000 for c_idx in c: a = min(a, abs(X[h_idx] - X[c_idx]) + abs(Y[h_idx] - Y[c_i.. 2024. 9. 25.
[Python] 프로그래머스 최댓값과 최솟값 https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이공백으로 구분된 문자열 s가 주어질 때, s 안에서 최댓값과 최솟값을 찾아 (최솟값) (최댓값) 형태로 리턴해야하는 문제입니다. 공백 분리, 오름차순 정렬, 최솟값 최댓값 찾기 순서로 구현해주면 됩니다. 공백분리의 경우 str.split 함수를 사용하여 분리해줍니다. 구분자로는 ' ' 공백을 지정해줍니다.반환된 list 를 정렬해주는데, key=int를 지정하여 정렬해줘야 합니다.정렬된 list의 .. 2024. 9. 20.
[Python] 프로그래머스 가장 큰 수 https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이주어진 numbers 에서 가장 큰 수를 만들 수 있도록 numbers를 정렬해야 합니다.  s1, s2가 s1+s2  numbers를 string으로 바꾸고 cmp_to_key를 사용하면 쉽게 정렬을 처리할 수 있습니다. from functools import cmp_to_keydef compare(s1, s2): if s1 + s2 2024. 8. 13.
[Python] 프로그래머스 K번째수 https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이sorted와 리스트 인덱싱을 사용해 답을 구할 수 있습니다. for문을 map함수로 대체하면 한줄로 답을 구할 수 있습니다.def solution(array, commands): answer = [] #for idx, command in enumerate(commands): #answer.append(sorted(array[command[0]-1:command[1]].. 2024. 8. 13.
[Python] 프로그래머스 더 맵게 https://school.programmers.co.kr/learn/courses/30/lessons/42626?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이모든 음식의 scoville 값을 K 이상으로 만들고 싶습니다. K보다 작은 경우 (가장 맵지 않은 음식의 스코빌레 + 두번째로 맵지 않은 음식의 스코빌레 * 2)로 새로운 음식을 만듭니다. 우선순위 큐(최소힙)를 사용하여 문제를 해결할 수 있습니다. scoville를 최소힙으로 만들면 첫번재, 두번째 원소를 사용해 새로운 음식을 만들면 됩니다.이 때, 두번째 원소가.. 2024. 8. 12.
[Python] 프로그래머스 주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584?language=python3# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이초 단위로 기록된 주식 가격이 주어질 때, 가격이 떨어지지 않은 기간이 몇초인지 리턴해야 하는 문제입니다. 스택에 값을 기록한뒤 새로운 값이 들어오면, 이전에 기록한 값이 새로운 값 보다 크다면 계속해서 pop해주는 방법으로 문제를 해결할 수 있습니다.이 때, pop 하는 값은 몇초간 스택에 남아있었는지 answer에 기록해둡니다. 값을 검사하고 stk에 남아있는 값.. 2024. 8. 11.