파이썬 145

[Python/프로그래머스]후보키_조합

https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 어떻게 푸는지 잘 감이 안왔는데... combinations를 쓰는건가 생각했는데 맞았다. combinations는 반환 값이 튜플이다. 1. combinations를 이용해서 조합을 모두 구한다. 2. 유일성을 만족하는 친구를 찾는다. -> 1번에서 구한 친구들을 이용해 relation값들을 이용해서 튜플을 만들고 그것의 set(중복제거)후의 길이가 relation의 길이와 동일하면 모두 식별할..

[Python/프로그래머스]외벽점검_구현

https://school.programmers.co.kr/learn/courses/30/lessons/60062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 어렵다!!😈😈 그래도 이런 구현을 풀어야 코테를 풀 수 있는거겠지 1. 먼저 계산을 쉽게 하기 위해 원형을 선형으로 바꿔준다. (원래 값에 원형의 길이를 더해 붙여주면 된다.) 2. 각각의 모든 weak 지점에서 시작하는 경우를 모두 확인하기 위해 permutation으로 순서를 정하기 전에 for문으로 weak의 길이만큼 돌린다. 3. position을 구한다. count도 1로 초기화 해준다...

[Python/프로그래머스]합승택시요금_플로이드와샬

https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🐾 20221022 플로이드 와샬 백준 문제 풀이 : https://what-am-i.tistory.com/425 [Python/BOJ] 백준11404 플로이드_플로이드와샬 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보..

[Python/BOJ] 백준11404 플로이드_플로이드와샬

https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 이전에 했던 다익스트라는 한 노드에서 모든 노드로의 정점을 찾는 방법이었다. 이와 비슷한 플로이드 와샬은 모든 노드에서 모든 노드로의 최단 경로를 찾는 알고리즘이다. 2차원 테이블에 dp를 이용해 최단거리 정보를 저장하며 구한다. 시간복잡도는 O(n^3)로 오래걸린다. 삼중 for문을 사용하기 때문이다. 노드나 간선의 개수가 많으면 플로이드 와샬이 아닌 다익스트라를 고려해보시라 아무래도 dp이기 ..

[Python/프로그래머스][1차]캐시_구현

https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr cacheSize가 있는지 없는지에 따라 2가지로 구분해서 코드를 만들어야한다. 그리고 대소문자 구분이 없으므로 city.lower()를 통해서 모든 문자를 소문자로 만들어 비교한다. 코드 : def solution(cacheSize, cities): time = 0 stack = [] for c in cities : c= c.lower() if cacheSize : if c in stack : ..

[Python/프로그래머스]괄호 변환_구현

https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제도 잘 이해가 안됐고 어떻게 구현할지 감도 잘안왔다...😓 이번에 풀고 익혀야지!! 코드 : # u,v로 나누기 def divide(p) : open_p = 0 close_p = 0 for i in range(len(p)) : if p[i] == '(' : open_p+=1 else : close_p +=1 # 같아지는 순간 # u는 균형잡힌 괄호 문자열 if open_p == close_p ..

[Python/프로그래머스]프렌즈4블록_구현

https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🐾 2022-10-21 문제를 보고 생각난 풀이 : 모든 영역을 돌면서 해당 블록을 기준으로 우,하,아래우측 대각선 블록이 동일한 블록을 찾는다. 모든 영역을 돌면서 찾은 다음에 모은 블럭들을 비었다는 표시를 해준다. 그 후 비었다는 표시를 이용해 위에서 아래로 값들을 내린다. 이것을 계속 반복하면서 동일한 블록이 없을 때까지 찾는다. 반복이 멈추면 다시 돌면서 빈 블록의 개수를 세서 반환하면 된..

[Python/프로그래머스]두 큐 합 같게 만들기_[구현]

🐾 20221202 🐾 20221205 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 쉬워보임..! 풀긴 풀었는데 정확도가 100이 안나왔다 틀린코드 : from collections import deque def solution(queue1, queue2): answer = 0 q1,q2 = deque(queue1),deque(queue2) Sum1 = sum(q1) Sum2 = sum(q2) S = Sum1 + Sum2 l1, l2 = ..

[Python/BOJ] 백준2212 센서_그리디

https://www.acmicpc.net/problem/2212 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net 5번을 읽었는데 문제가 잘 이해가 안되서 답을 찾아봤다.😂 그냥 쉽게 말하면 n개의 센서를 k개의 구간으로 나누기 더만!! 내가 독해력이 떨어지나....ㅋㅋㅋ 정렬을 이용하여 그리디 방식으로 풀이하였다. - 만약 집중국의 개수가 센서보다 크거나 같다면 0이다. 1) 센서들을 순서대로 만든다.(오름차순 정렬) 2) 센서들..

[Python/프로그래머스]거리두기 확인하기_[BFS]

https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🐾 20221022 - 이번엔 혼자 못품.. 으아아아 혼자 풀었다!!!! 생각한 방법 : 매번 p가 나올 때 마다 bfs를 돌려서 2 이내에 다른 p가 발견되면 answer에 0을 넣자. 코드 : from collections import deque import copy dx = [0,1,0,-1] dy = [1,0,-1,0] def bfs(q,vis,tmp) : isTrue = 1 while q..