호텔대실 (구현)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(book_time): check = [0]*1440 for times in book_time: sh, sm = map(int, times[0].split(':')) eh, em = map(int, times[1].split(':')) start = sh * 60 + sm end = eh * 60 + em + 10 # 청소시간 10분 포함 if end > 1440: # 24..
피로도 (던전탐험, 완전 탐색, permutations)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, 소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. """ from itertools import permutations def solution(k, dungeons): max_cnt=0 for x in permutations(dungeons, len(dungeons)): hp=k ..
사라지는 발판 (DFS)
·
Coding Test/programmers
https://school.programmers.co.kr/learn/courses/30/lessons/92345 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 dr=[0,0,-1,1] dc=[1,-1,0,0] def solution(board, aloc, bloc): n=len(board) m=len(board[0]) visited = [[0]*5 for _ in range(5)] # 방문 block=[[0]*5 for _ in range(5)] # 발판 def dfs(p1,p2): r, c = p1[0], p1[1] # 현재 플레이어 좌표 opr..
[1231] 주식왕 동호 (냅색 알고리즘)
·
Coding Test/DP
1231번: 주식왕 동호 첫 줄에는 주식의 개수 C(1 ≤ C ≤ 50)과 주식 매입 및 매각을 할 기간 D(2 ≤ D ≤ 10), 초기 자금 M(1 ≤ M ≤ 200,000)이 공백으로 구분되어 주어진다. 두 번째 줄부터 C+1번째 줄까지 각 줄에는 각각 주 www.acmicpc.net 분석 [12865] 평범한 배낭 (냅색 알고리즘) 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 karla.tistory.com 풀이 import sys input=sys.stdin.readline c,d,m=map(int..
카드 짝 맞추기 (순열 permutations, BFS, DFS)
·
Coding Test/programmers
""" 1,2,3 짝을 맞춰야하는데 123,132,231,213,312,324 어떤 순서로 맞추는게 빠른지 -> 순열 구해서 인덱스 dfs 123도 어떤 1로 먼저 가야되는지 -> 2가지 경우 bfs 최솟값 출력 """ from collections import defaultdict, deque from itertools import permutations from copy import deepcopy def bfs(board, start, end): if start==end: return 0 q, visit = deque([[start[0], start[1], 0]]), {start} while q: # BFS x, y, c = q.popleft() for dx, dy in [(0,1),(0,-1),(..
뉴스 클러스터링 (문자열 리스트 합집합, 교집합, 중복 허용 다중집합)
·
Coding Test/programmers
from collections import Counter def solution(str1, str2): answer = 0 str1,str2=str1.upper(), str2.upper() a=[] for i in range(1,len(str1)): if str1[i-1].isalpha() and str1[i].isalpha(): a.append(str1[i-1]+str1[i]) b=[] for i in range(1,len(str2)): if str2[i-1].isalpha() and str2[i].isalpha(): b.append(str2[i-1]+str2[i]) if len(a)==len(b)==0: return 65536 a = Counter(a) b = Counter(b) c = list((a..