본문 바로가기

전체 글116

[BOJ] 1024번 수열의 합 파이썬 문제 N과 L이 주어질 때, 합이 N이면서, 길이가 적어도 L인 가장 짧은 연속된 음이 아닌 정수 리스트를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 L이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이고, L은 2보다 크거나 같고, 100보다 작거나 같은 자연수이다. 출력 만약 리스트의 길이가 100보다 작거나 같으면, 연속된 수를 첫째 줄에 공백으로 구분하여 출력한다. 만약 길이가 100보다 크거나 그러한 수열이 없을 때는 -1을 출력한다. 풀이 #수학 처음에는 i*n+x = N 쪽으로만 생각을 해서 N이 최대값일 때 (1000000000) 제대로 동작하지 않았다. 그래서 반대로 n = (N-x)/i 의 방향으로 생각을 바꿔서 풀었다. 여기서 x는 1부터 L-1까지 더한 값.. 2022. 9. 3.
[BOJ] 1058번 친구 파이썬 풀이 #플로이드워셜 입력 받은 배열에 따라 floyd계산 배열을 초기화해준 후 플로이드워셜을 수행한다. 모든 관계에 대한 값을 구한 후 floyd 계산 값이 1이상 2이하인 경우에 2-친구 수를 증가시키고 이 작업이 끝나면 최대값을 출력한다. 코드 N = int(input()) INF = 1e9 arr = [list(input().strip()) for _ in range(N)] floyd = [[INF]*N for _ in range(N)] result = [0 for _ in range(N)] for i in range(N): floyd[i][i]=0 for j in range(N): if arr[i][j] == 'Y': floyd[i][j] = 1 for k in range(N): for i in .. 2022. 9. 1.
[BOJ] 5567번 결혼식 파이썬 문제 상근이는 자신의 결혼식에 학교 동기 중 자신의 친구와 친구의 친구를 초대하기로 했다. 상근이의 동기는 모두 N명이고, 이 학생들의 학번은 모두 1부터 N까지이다. 상근이의 학번은 1이다. 상근이는 동기들의 친구 관계를 모두 조사한 리스트를 가지고 있다. 이 리스트를 바탕으로 결혼식에 초대할 사람의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이의 동기의 수 n (2 ≤ n ≤ 500)이 주어진다. 둘째 줄에는 리스트의 길이 m (1 ≤ m ≤ 10000)이 주어진다. 다음 줄부터 m개 줄에는 친구 관계 ai bi가 주어진다. (1 ≤ ai < bi ≤ n) ai와 bi가 친구라는 뜻이며, bi와 ai도 친구관계이다. 출력 첫째 줄에 상근이의 결혼식에 초대하는 동기의 수를 출력한다. 풀이 .. 2022. 8. 23.
[BOJ] 3187번 양치기 꿍 파이썬 문제 양치기 꿍은 맨날 늑대가 나타났다고 마을 사람들을 속였지만 이젠 더이상 마을 사람들이 속지 않는다. 화가 난 꿍은 복수심에 불타 아예 늑대들을 양들이 있는 울타리안에 마구 집어넣어 양들을 잡아먹게 했다. 하지만 양들은 보통 양들이 아니다. 같은 울타리 영역 안의 양들의 숫자가 늑대의 숫자보다 더 많을 경우 늑대가 전부 잡아먹힌다. 물론 그 외의 경우는 양이 전부 잡아먹히겠지만 말이다. 꿍은 워낙 똑똑했기 때문에 이들의 결과는 이미 알고있다. 만약 빈 공간을 '.'(점)으로 나타내고 울타리를 '#', 늑대를 'v', 양을 'k'라고 나타낸다면 여러분은 몇 마리의 양과 늑대가 살아남을지 계산할 수 있겠는가? 단, 울타리로 막히지 않은 영역에는 양과 늑대가 없으며 양과 늑대는 대각선으로 이동할 수 없다... 2022. 8. 23.