목록Algorithm (56)
IT recording...
https://www.acmicpc.net/problem/1713 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 www.acmicpc.net import sys def input(): return sys.stdin.readline().rstrip() N = int(input()) M = input() R = map(int,input().split()) candidate = {} for i,r in enumerate(R): #액자가 가득 찼을 때 if len(candidate) >= N and r not in candidate:..
https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 풀이 방법 모든 경로를 다 돌면서 최대 cost를 찾는거니까 완전탐색? 가만있어봐 보니까 경로 내려가면서 겹치는게 있잖아? → dp테이블 이용! 각 층, 각 칸의 상황을 저장 해 놓을 수 있는 dp테이블을 만들자 최종 코드 import sys def input(): return sys.stdin.readline().rstrip() #일단 모든 경로를 다 돌긴 해야하는데, dp테이블 사용해서 시간 줄이기 가능 #삼각형크기는 1 이상 500 이하 #대각선 왼쪽 혹은 대각선..
2098번: 외판원 순회 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 풀이 방법 모든 경로 중에서 최소 cost를 구해야 하니 완전탐색인가? 경로들의 순서를 기록할 필요는 없고 && city가 32개 이하 잖아? ⇒ bitmask 마지막에 다시 제자리로 돌아오니 어차피 순환이잖아? 우리가 원하는거는 그냥 최소 비용이고 → 시작점은 뭐로 하든 상관없음 top-down으로 할 것인가 , bottom-up으로 할 것인가? → 최소 cost를 구할 것이므로 route를 끝까지..
https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 더보기 import sys from itertools import combinations def input(): return sys.stdin.readline().rstrip() N, K = map(int, input().split()) word = [input() for _ in range(N)] basic = {"a","n","t","i","c"} #무조건 배워야 하는 글자 수 lear..
https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 더보기 import sys from collections import deque def input(): return sys.stdin.readline().rstrip() R, C = map(int, input().split()) board = [] visited = [[False for _ in range(C)] for _ in range(R)] #물, 고슴도치를 큐에 넣고 움직이면서 굴에 들어갔는지 확인할거..
3425번: 고스택 3425번: 고스택 각각의 입력값에 대해서, 해당하는 프로그램을 수행한 뒤, 출력값을 출력하면 된다. 출력값이란 스택에 저장되어 있는 숫자이다. 만약, 프로그램 에러가 발생하거나, 모든 수행이 종료됐을 때 www.acmicpc.net 푼 코드 더보기 import sys from collections import deque input = sys.stdin.readline def goStack(pList, num): goStack = deque([num]) # 연산 for pL in pList: if pL.split(" ")[0] == "NUM": # 스택 최상위에 저장하기 0 goStack.appendleft(int(pL.split(" ")[1])) elif not goStack: re..