Heeto
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보다 모두 작아서..

article thumbnail
[ 백준 ][ 골드3 ] 163236번 - 아기 상어 ( 파이썬 Python )

링크 : https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 코드 from collections import deque n = int(input()) sx,sy = -1,-1 graph = [] eat_cnt, fish_cnt, time, size = 0, 0, 0, 2 dx,dy = [-1,0,0,1],[0,-1,1,0] for i in range(n): l = list(map(int,input().split())) for j in ran..