본문 바로가기

분류 전체보기203

[Python] 가장 높은 탑 쌓기 (LIS 응용) 문제밑면이 정사각형인 직육면체 벽돌들을 사용하여 탑을 쌓고자 한다. 탑은 벽돌을 한  개씩 아래에서 위로 쌓으면서 만들어 간다. 아래의 조건을 만족하면서 가장 높은 탑을 쌓을 수 있는 프로그램을 작성하시오. (조건 1) 벽돌은 회전시킬 수 없다. 즉, 옆면을 밑면으로 사용할 수 없다.(조건 2) 밑면의 넓이가 같은 벽돌은 없으며, 또한 무게가 같은 벽돌도 없다.(조건 3) 벽돌들의 높이는 같을 수도 있다.(조건 4) 탑을 쌓을 때 밑면이 좁은 벽돌 위에 빝면이 넓은 벽돌은 놓을 수 없다.(조건 5) 무게가 무거운 벽돌을 무게가 가벼온 벽돌 위에 놓을 수 없다. 입력설명입력 파일의 첫째 줄에는 입력될 벽돌의 수가 주어진다. 입력으로 주어지는 벽돌의 수는 최대 100개이다.둘째 줄부터는 각 줄에 한 개의 벽.. 2024. 5. 24.
상반기 회고 보호되어 있는 글 입니다. 2024. 5. 23.
[Python] 백준 1316번 - 그룹 단어 체커 https://www.acmicpc.net/problem/1316  My AnswerN = int(input())cnt = 0def wordChecker(string): # 그룹 단어 체커인 지 확인 check = [] for s in string: if s not in check: #리스트에 해당 문자가 존재하는 지 확인 check.append(s) #없었다면 check 리스트에 담기 elif check[-1] != s: # 해당 문자가 존재했는데, s와 마지막에 담긴 check의 값과 같지 않다면 그룹 단어 체커가 아님 return False return True # 여기까지 왔다면, 그룹 단어 체커for i i.. 2024. 5. 23.
[Python] 섹션 8 DP(동적계획법) - 최대 부분 증가수열 인프런 - 파이썬 알고리즘 문제풀이 입문(코딩테스트 대비) 강의를 보고 정리한 글입니다. 최대 부분 증가수열이란?N개의 자연수로 이루어진 수열이 주어졌을 때, 그 중에서 가장 길게 증가하는 (작은 수에서 큰 수로) 원소들의 집합을 찾는 프로그램을 작성하라.예를 들어, 원소가 2,7,5,8,6,4,7,12,3 이면 가장 길게 증가하도록 원소들을 차례대로 뽑아내면 2,5,6,7,12를 뽑아내어 길이가 5인 최대 부분 증가수열을 만들 수 있다. 입력설명첫째 줄은 입력되는 데이터의 수 N을 의미하고, 둘째 줄은 N개의 입력데이터들이 주어진다. 출력설명첫 번째 줄에 부분증가수열의 최대 길이를 출력한다. 입력예제 185 3 7 8  6 2 9 4 출력예제 14- maybe... 5 7 8 9 의 길이일 듯 하다. .. 2024. 5. 23.
[Python] 백준 2775 - 부녀회장이 될테야 https://www.acmicpc.net/problem/2775 나의 답N = int(input())for _ in range (N): i = int(input()) j = int(input()) arr = [[0 for _ in range(j)] for _ in range(i+1)] for index in range(j): arr[0][index] = index+1 for floor in range(1, i+1): for ho in range(j): for value in range(ho+1): arr[floor][ho]+=arr[floor-1][valu.. 2024. 5. 22.
[Python] 백준 - 20125번 : 쿠키의 신체측정 https://www.acmicpc.net/problem/20125 n = int(input())result = []answer = []for _ in range(n): div = [] li = input() for i,v in enumerate (li): if v=='*': div.append(i) if len(div) >0: result.append(div)answer.append(result[1].index(result[0][0]))answer.append(len(result[1])-result[1].index(result[0][0])-1)cnt = 0for i in result[2:]: if len(i)>1: an.. 2024. 5. 22.