본문 바로가기

Algorithm/BOJ5

[ BOJ ] 9084 / 동전 t = int(input()) for _ in range(t): coin_num = int(input()) # 동전의 가지 수 arr = list(map(int, input().split())) arr.insert(0, 0) result = int(input()) dp = [[0] * (result + 1) for i in range(coin_num + 1)] # 2차원 배열 생성 for i in range(coin_num + 1): dp[i][0] = 1 # result = 0을 만들 수 있는 가지수는 무조건 1 for j in range(1, coin_num + 1): # 화폐의 종류의 개수 for i in range(1, result + 1): # 찾고자 하는 돈 # j 행을 j-1행으로 updat.. 2022. 8. 3.
[ BOJ ] 14888 / 연산자 끼워넣기 문제 n개의 수로 이루어진 수열이 주어집니다. 수와 수 사이에 끼워 넣을 수 있는 n-1개의 연산자가 주어집니다. 연산자는 +, -, x, / 로만 구성됩니다. 주어진 수열의 순서를 바꾸는것은 안됩니다. Solve 연산자의 순열을 구합니다. operator = ['+', '+', '-', '*', '/'] arr = itertools.permutations(operator, len(operator)) print(len(list(arr))) # 120 ('+', '+', '-', '*', '/') 이런게 겹치는 것을 확인할 수 있습니다. 이때 전체 길이는 120입니다. arr = itertools.permutations(operator, len(operator)) arr_set = set(list(arr).. 2022. 7. 26.
[ BOJ ] 2667 / 단지번호붙이기 https://www.acmicpc.net/problem/2667 문제 정사각형 모양의 지도가 있습니다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타냅니다. 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려고 합니다. 연결되어있다는 것은 상하좌우로 다른 집이 있는 경우를 의미합니다. 대각선에 집이 있는 경우 연결된 것이 아닙니다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하세요. input 첫 번째 줄에는 지도의크기 n이 입력됩니다. 다음으로 n개의 행으로 이루어지도록 자료가 입력됩니다. output 첫 번째 줄에는 총 단지수를 출력합니다. 그 아래는 단지내 집의 수를 오름차순으로 정렬하여 한 줄에 하나씩 출력해줍니다. Co.. 2022. 7. 20.
[ BOJ ] 1713 / 후보 추천하기 비어있는 사진틀이 없는 경우 -> 현재까지 추천 받은 횟수가 가장 적은 학생이 두 명 이상일 경우 -> 그러한 학생들 중 게시된 지 가장 오래된 사진을 삭제하는 것 이 부분에서 추천횟수가 동일한 두 학생의 순서를 어떻게 구별해야하는지에 대한 고민이 많았습니다. 따라서 최솟값을 갖는 index가 한 개가 아닌 여러개인 경우 어떻게 판별해야하는지 고민했으나 의미 없는 결론임을 알 수 있었습니다. 이유는 frame에 추가한 순서를 통해 오래된 사진인지 알 수 있기 때문입니다. Code 2022. 7. 12.