전체 224

[백준 python 11403] 경로 찾기

[Silver I] 경로 찾기 - 11403문제 링크성능 요약메모리: 34036 KB, 시간: 72 ms분류플로이드–워셜, 그래프 이론, 그래프 탐색, 최단 경로제출 일자2024년 11월 14일 22:05:23문제 설명가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오.입력첫째 줄에 정점의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄부터 N개 줄에는 그래프의 인접 행렬이 주어진다. i번째 줄의 j번째 숫자가 1인 경우에는 i에서 j로 가는 간선이 존재한다는 뜻이고, 0인 경우는 없다는 뜻이다. i번째 줄의 i번째 숫자는 항상 0이다.출력총 N개의 줄에 걸쳐서 문제의 정답을 인접행렬 형식..

[백준 python 5525] IOIOI

[Silver I] IOIOI - 5525문제 링크성능 요약메모리: 31120 KB, 시간: 32 ms분류문자열제출 일자2024년 11월 13일 00:22:05문제 설명N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다.P1 IOIP2 IOIOIP3 IOIOIOIPN IOIOI...OI (O가 N개)I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 군데 포함되어 있는지 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다.출력S에 PN이 몇 군데 포함되어 있는지 출력한다.풀이n = int(input())m = int(input())p = ""for i in rang..

[백준 python 1389] 케빈 베이컨의 6단계 법칙

[Silver I] 케빈 베이컨의 6단계 법칙 - 1389문제 링크성능 요약메모리: 34044 KB, 시간: 60 ms분류너비 우선 탐색, 플로이드–워셜, 그래프 이론, 그래프 탐색, 최단 경로제출 일자2024년 11월 12일 23:13:29문제 설명케빈 베이컨의 6단계 법칙에 의하면 지구에 있는 모든 사람들은 최대 6단계 이내에서 서로 아는 사람으로 연결될 수 있다. 케빈 베이컨 게임은 임의의 두 사람이 최소 몇 단계 만에 이어질 수 있는지 계산하는 게임이다.예를 들면, 전혀 상관없을 것 같은 인하대학교의 이강호와 서강대학교의 민세희는 몇 단계만에 이어질 수 있을까?천민호는 이강호와 같은 학교에 다니는 사이이다. 천민호와 최백준은 Baekjoon Online Judge를 통해 알게 되었다. 최백준과 김..

[백준 python 30804] 과일 탕후루

[Silver II] 과일 탕후루 - 30804문제 링크성능 요약메모리: 35568 KB, 시간: 328 ms분류브루트포스 알고리즘, 구현, 두 포인터제출 일자2024년 10월 21일 13:48:18문제 설명은하는 긴 막대에 N개의 과일이 꽂혀있는 과일 탕후루를 만들었습니다. 과일의 각 종류에는 1부터 9까지의 번호가 붙어있고, 앞쪽부터 차례로 S1,S2,⋯,SN번 과일이 꽂혀있습니다. 과일 탕후루를 다 만든 은하가 주문을 다시 확인해보니 과일을 두 종류 이하로 사용해달라는 요청이 있었습니다.탕후루를 다시 만들 시간이 없었던 은하는, 막대의 앞쪽과 뒤쪽에서 몇 개의 과일을 빼서 두 종류 이하의 과일만 남기기로 했습니다. 앞에서 a개, 뒤에서 b개의 과일을 빼면 Sa+1,Sa+2,⋯,SN−b−1,SN−b번..

[백준 python 21736] 헌내기는 친구가 필요해

[Silver II] 헌내기는 친구가 필요해 - 21736문제 링크성능 요약메모리: 36692 KB, 시간: 356 ms분류너비 우선 탐색, 깊이 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 10월 19일 20:00:14문제 설명2020년에 입학한 헌내기 도연이가 있다. 도연이는 비대면 수업 때문에 학교에 가지 못해 학교에 아는 친구가 없었다. 드디어 대면 수업을 하게 된 도연이는 어서 캠퍼스 내의 사람들과 친해지고 싶다.도연이가 다니는 대학의 캠퍼스는 N×M 크기이며 캠퍼스에서 이동하는 방법은 벽이 아닌 상하좌우로 이동하는 것이다. 예를 들어, 도연이가 (x, y)에 있다면 이동할 수 있는 곳은 (x+1, y), (x, y+1), (x−1, y), (x, y−1)이다. 단, 캠퍼스의 밖으로..

[백준 python 18111] 마인크래프

[Silver II] 마인크래프트 - 18111문제 링크성능 요약메모리: 118612 KB, 시간: 404 ms분류브루트포스 알고리즘, 구현제출 일자2024년 10월 18일 23:19:34문제 설명팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 땅을 파거나 집을 지을 수 있는 게임이다.목재를 충분히 모은 lvalue는 집을 짓기로 하였다. 하지만 고르지 않은 땅에는 집을 지을 수 없기 때문에 땅의 높이를 모두 동일하게 만드는 ‘땅 고르기’ 작업을 해야 한다.lvalue는 세로 N, 가로 M 크기의 집터를 골랐다. 집터 맨 왼쪽 위의 좌표는 (0, 0)이다. 우리의..

[백준 python 17626] Four Squares

[Silver III] Four Squares - 17626문제 링크성능 요약메모리: 31552 KB, 시간: 52 ms분류브루트포스 알고리즘, 다이나믹 프로그래밍제출 일자2024년 10월 15일 16:35:03문제 설명라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 12으로 표현할 수도 있다. 역사적으로 암산의 명수들에게 공통적으로 주어지는 문제가 바로 자연수를 넷 혹은 그 이하의 제곱수 합으로 나타내라는 것이었다. 1900년대 초반에 한 암산가가 15663 = 1252 + 62 + 12 + 12라는 해를 구하는데 8초가 걸렸다는 보고가 있다..

[백준 python 11727] 2 x n 타일링 2

[Silver III] 2×n 타일링 2 - 11727문제 링크성능 요약메모리: 31120 KB, 시간: 44 ms분류다이나믹 프로그래밍제출 일자2024년 10월 17일 11:41:58문제 설명2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.아래 그림은 2×17 직사각형을 채운 한가지 예이다.입력첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)출력첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.풀이n = int(input())dp = [0, 1, 3, 5]for i in range(4, 1001): dp.append(dp[i-1] + dp[i-2] * 2) print(dp[n] % 10007) ..

[백준 python 1676] 팩토리얼 0의 개수

[Silver V] 팩토리얼 0의 개수 - 1676문제 링크성능 요약메모리: 33240 KB, 시간: 36 ms분류수학제출 일자2024년 10월 9일 18:08:24문제 설명N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)출력첫째 줄에 구한 0의 개수를 출력한다.풀이import mathn = int(input())f = str(math.factorial(n))rev_f = str(int(f[::-1]))print(len(f) - len(rev_f))나의 풀이는 int형으로 변환하는 과정에서 앞에 `0`이 존재하면 지워지는 것을 활용하여 문제를 해결하였다.먼저 입력받은 n의 팩토리얼을 구하여 문자열로 변환..