본문 바로가기

코딩테스트70

[Python] 백준 12789번 - 도키도키 간식드리미 https://www.acmicpc.net/problem/12789 나의 답from collections import dequedef check(stack,i): # 스택에 넣을 수 있는 지 확인 if len(stack)==0: return True elif i0: i = li[0] if i == target: # 그냥 줄, 간식 여부 확인 li.remove(i) target+=1 elif stackpop(stack, target): # 스택 줄(간이), 간식 여부 확인 stack.remove(target) target+=1 elif check(stack,i): # 간식 못받는 상황, 그냥 줄 지우고, .. 2024. 5. 30.
[Python] 백준 17266번 - 어두운 굴다리 https://www.acmicpc.net/problem/17266 나의 답import mathl = int(input())cnt = int(input())spot = list(map(int, input().split()))gap = max(spot[0],l-spot[-1])for i in range (0,cnt-1): gap = max(gap,math.ceil((spot[i+1]-spot[i])/2))print(gap) 가로등의 높이를 구해보았다. 처음 설치된 가로등은 0으로부터 몇 떨어져있느냐가 관건이고,마지막으로 설치된 가로등은 맨끝(l)으로 부터 몇 떨어져있느냐가 관건이기 때문에 둘 중에 큰 값을 gap 값으로 설정하였다.큰 값으로 설정한 이유는 둘 다 동시에 만족시켜야 가로등이 처음, 끝을.. 2024. 5. 30.
[Python] 2941번 - 크로아티아 알파벳 https://www.acmicpc.net/problem/2941 나의 답li = ["c=", "c-","dz=", "d-", "lj", "nj", "s=", "z="]string = input()cnt = 0for check in li: cnt+=string.count(check)print(len(string)-cnt) 입력받은 문자열에각각 크로아티아 알파벳이 몇 개 들어있나 count했다.전체 문자열 길이에서 - count를 빼줬다.왜냐하면 크로아티아 알파벳은 길이가 2인데, 한 글자로 인식해야하기 때문이다. 알아가는 것문자열.count('요소') => 해당 문자열에 요소(문자 혹은 문자열)가 몇 개 있는 지 카운트 해줌-> 이 때 요소는 문자 1개가 될 수도 있고, 문자열이 될 수도 있다.. .. 2024. 5. 24.
[Python] 가장 높은 탑 쌓기 (LIS 응용) 문제밑면이 정사각형인 직육면체 벽돌들을 사용하여 탑을 쌓고자 한다. 탑은 벽돌을 한  개씩 아래에서 위로 쌓으면서 만들어 간다. 아래의 조건을 만족하면서 가장 높은 탑을 쌓을 수 있는 프로그램을 작성하시오. (조건 1) 벽돌은 회전시킬 수 없다. 즉, 옆면을 밑면으로 사용할 수 없다.(조건 2) 밑면의 넓이가 같은 벽돌은 없으며, 또한 무게가 같은 벽돌도 없다.(조건 3) 벽돌들의 높이는 같을 수도 있다.(조건 4) 탑을 쌓을 때 밑면이 좁은 벽돌 위에 빝면이 넓은 벽돌은 놓을 수 없다.(조건 5) 무게가 무거운 벽돌을 무게가 가벼온 벽돌 위에 놓을 수 없다. 입력설명입력 파일의 첫째 줄에는 입력될 벽돌의 수가 주어진다. 입력으로 주어지는 벽돌의 수는 최대 100개이다.둘째 줄부터는 각 줄에 한 개의 벽.. 2024. 5. 24.
[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.