Heeto
article thumbnail
[ 백준 / 골드4 / 파이썬 Python ] 1647번 - 도시 분활 계획

링크 : https://www.acmicpc.net/problem/1647 1647번: 도시 분할 계획 첫째 줄에 집의 개수 N, 길의 개수 M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 www.acmicpc.net 코드 import sys input = sys.stdin.readline def ancestor(node): if parent[node] != node: parent[node] = ancestor(parent[node]) return parent[node] n,m = map(int,input().split()) graph = [list(map(int,..

article thumbnail
[ 백준 / 실버2+골드1 / 파이썬 Python ] 2098번 - 외판원 순회

링크 : https://www.acmicpc.net/problem/10971 https://www.acmicpc.net/problem/2098 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.n..

article thumbnail
[ 프로그래머스 / LV2 / 파이썬 Python ] 연속된 부분 수열의 합

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(sequence, k): answer = [] n = len(sequence) s,end = 0, 0 for i in range(len(sequence)): while s < k and end < n: s += sequence[end] end += 1 if s == k: answer.append((i,end-1)) s -= sequence[i] return ..

article thumbnail
[ 프로그래머스 / LV2 / 파이썬 Pyhton ) 마법의 엘리베이터

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(s): answer = 0 stack = list(map(int,list(str(s))))[::-1] while stack: x = stack.pop() if x > 5: # 5보다 작다면 if stack: stack[-1] += 1 answer += 10-x else: answer += 10-x+1 elif x < 5: # 5보다 크다면 answer += ..

article thumbnail
[ 프로그래머스 / LV2 ] 디펜스 게임 (파이썬 Python )

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 from heapq import heappop, heappush def solution(n, k, enemy): answer, sumEnemy = 0, 0 heap = [] for e in enemy: heappush(heap, -e) sumEnemy += e if sumEnemy > n: if k == 0: break sumEnemy += heappop(heap) k -= 1 a..

article thumbnail
[ 프로그래머스 / LV3 ] 연속 펄스 부분 수열의 합 ( Python 파이썬 )

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(sequence): table = [[0 for _ in range(len(sequence) + 1)] for _ in range(2)] weight = 1 for i in range(len(sequence)): table[0][i + 1] = table[0][i] + sequence[i] * weight table[1][i + 1] = table[1][i]..

article thumbnail
[ 프로그래머스 / Lv2 ] 광물 캐기 ( 파이썬 Python )

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(picks, minerals): graph =[[1,1,1], [5,1,1], [25,5,1]] def mineralNum(s): if s == "diamond": return 0 if s == "iron": return 1 if s == "stone": return 2 def DFS(cnt,prePick,total): nonlocal answer,picks..

article thumbnail
[ 프로그래머스 ][ lv2 ] 뒤에 큰 수 찾기 ( 파이썬 Python ) (Stack을 사용하지 않은 풀이)

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(numbers): answer = [-1] * len(numbers) backMax = numbers[-1] for i in range(len(numbers)-2,-1,-1): if numbers[i] >= backMax: backMax = numbers[i] continue for j in range(i+1,len(numbers)): if numbers[j..

article thumbnail
[ 프로그래머스 ][ Lv3 ] 인사고과 ( 파이썬 Python )

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/152995 코드 def solution(scores): ho = scores[0] sum_ho = sum(scores[0]) scores.sort(key=lambda x: (-x[0],x[1])) answer = 0 before = 0 for score in scores: if ho[0] < score[0] and ho[1] < score[1]: return -1 if before sum_ho: answer += 1 before = score[1] return answer+1 풀이 ''' 4 4 / 3 3 / 2 4 가 있을 때 3 3과 2 4는 같은 합임에도 3 3은 4 4보다 모두 작아서..