본문 바로가기

반응형

전체 글

(253)
[python/파이썬] 백준 2738 행렬 덧셈 [문제 출처] https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net [소스 코드] #2738 n,m = map(int, input().split()) a = [] b = [] for i in range(n): a.append(list(map(int, input().split()))) for i in range(n): b.append(list(map(int,input().split()))) for i in range(n): for j i..
[python/파이썬] 백준 4673 셀프 넘버 [문제 출처] https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net [소스 코드] 셀프 넘버를 구하는 함수를 구현하여 10000까지의 수에 대해 셀프 넘버를 구해 집합에 저장한다. 그 후에 10000까지의 숫자 중에 셀프 넘버 집합에 없는 숫자에 대해 출력한다. #4673 def d(n): result = n s = str(n) for i in range(len(s)): result += int(s[..
[python.v파이썬] 백준 1932 정수 삼각형 [문제 출처] https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net [소스 코드] 삼각형의 변에 해당하는 숫자는 이동할 수 있는 경로가 바로 위에 줄에 변에 해당하는 숫자밖에 없다. 따라서 양끝에 해당하는 숫자에 대해서는 윗 줄의 값을 더해준다. 가운데에 위치한 숫자의 경우 대각선으로 좌우가 가능하다. 인덱스로 따지면 행 인덱스는 하나 적고, 열 인덱스는 같거나 하나 적은 부분의 숫자에 해당한다. 이 두 숫자 중에 더 큰 숫자를 더해서 저장한다. #1932 n = int(input()) dp = [] for i in ra..
[python/파이썬] 백준 9184 신나는 함수 실행 [문제 출처] https://www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net [소스 코드] dp = [[[0 for col in range(21)] for row in range(21)] for depth in range(21)] def w(a,b,c): if a 20: return w(20,20,20) if dp[a][b][c]: return dp[a][b][c] if a < b < c: dp[a][b][c] = w(a-1, b, c) + w(a-1,b-1,c..
[python/파이썬] 백준 1904 01타일 [문제 출처] https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net [소스 코드1 - 시간 초과] 제일 처음에 접근한 방법은 dp 리스트에 길이가 1, 2, 3,... 인 이진 수열을 문자열로 저장해서 dp[i]를 구하고자 할 때 길이가 i-1인 수열에 문자 '1'을 덧붙이고, 길이가 i-2인 수열에는 '00'을 덧붙였고, 중복이 많기에 set으로 중복을 없애서 저장해주었다. 시간 초과가 나올 수밖에 없는 코드이긴 하다. #1904 n = int(inpu..
[python/파이썬] 백준 24416 알고리즘 수업 - 피보나치 수 1 [문제 출처] https://www.acmicpc.net/problem/24416 24416번: 알고리즘 수업 - 피보나치 수 1 오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍 www.acmicpc.net [소스 코드] python3로 제출을 하면 시간 초과가 나오기 때문에 PyPy3로 제출해야 한다. #254416 count = [1, 0] def fib(n): count[0] += 1 if n==1 or n==2: count[0]-=1 return 1 else: return fib(n-1) + fib(n-2) def fibonacci(n): f = [0,1,1] if..
[python/파이썬] 백준 2941 크로아티아 알파벳 [문제 출처] https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net [소스 코드1 - 틀렸습니다] 크로아티아 알파벳을 리스트에 저장하고 그 리스트에 있는 값이 문자열에 포함되었는지 확인하는 방법을 사용하였다. 같은 알파벳이 여러 번 들어갈 수 있기에, count() 함수를 사용해 result 값에 더해준 후에, 해당 알파벳을 문자열에서 모두 제거했다. 모든 크로아티아 알파벳에 대해서 이 과정을 반복한 후에 남은 ..
[python/파이썬] 백준 1546 평균 [문제 출처] https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net [문제 풀이] 리스트에 점수들을 저장하고, 그중에서 최댓값을 찾아 저장한다. 리스트의 모든 점수들에 대해서, 저장한 최댓값을 기준으로 하여 다시 점수를 계산하여 평균을 낸다. #1546 n = int(input()) score = list(map(int, input().split())) m = max(score) sum_value = 0 for i in range(n): sum..

반응형