백준 BAEKJOON 17206번 준석이의 수학 숙제 [PYTHON/파이썬] (BRONZE Ⅰ) https://www.acmicpc.net/problem/17206 17206번: 준석이의 수학 숙제 10 이하의 3 또는 7의 배수는 3, 6, 7, 9가 있다. 21 이하의 3 또는 7의 배수는 3, 6, 7, 9, 12, 14, 15, 18, 21이 있다. www.acmicpc.net N의 조건을 보면 10 이상 80000 이하이다. 그냥 생각한 대로 코드를 짜면 시간초과가 난다. 먼저 리스트의 크기를 80001 만큼 만든 후에 3으로 나눠지거나 7로 나눠지는 부분이 있으면 배수들의 합을 리스트에 담아야한다. 메모이제이션을 활용하는 것이다. T = int(input()) N = list(map(int, ..
백준 BAEKJOON 13420번 사칙연산 [PYTHON/파이썬] (BRONZE Ⅱ) https://www.acmicpc.net/problem/13420 13420번: 사칙연산 사칙연산은 덧셈, 뺄셈, 곱셈, 나눗셈으로 이루어져 있으며, 컴퓨터 프로그램에서 이를 표현하는 기호는 +, -, *, / 와 같다. 아래는 컴퓨터 프로그램에서 표현한 사칙 연산의 예제이다. 3 * 2 = 6 문 www.acmicpc.net 주어지는 식을 문자열로 받아서 리스트로 저장했다. if문을 사용하여 +, -, *, / 마다의 조건을 건 뒤 결괏값과 비교하여 올바른 식이면 correct 그렇지 않으면 wrong answer를 출력했다. T = int(input()) for _ in range(T): expression = l..
백준 BAEKJOON 13410번 거꾸로 구구단 [PYTHON/파이썬] (BRONZE Ⅱ) https://www.acmicpc.net/problem/13410 13410번: 거꾸로 구구단 일반적인 구구단에서 가장 큰 수는 마지막 항의 값이 제일 크다. 거꾸로 구구단에서는, 각 항에 구구단의 계산 결과로 나온 값을 뒤집어 저장을 한다. 이렇게 하면 가장 큰 값이 항상 마지막이 www.acmicpc.net for문을 통해 구구단을 구현하여 문자열로 거꾸로 만든 뒤 int형으로 변환 후 max를 통해 결과를 출력하였다. N, K = map(int, input().split()) googoodan = [int(str(N * i)[::-1]) for i in range(1, K + 1)] print(max(goo..
백준 BAEKJOON 17496번 스타후르츠 [PYTHON/파이썬] (BRONZE Ⅲ) https://www.acmicpc.net/problem/17496 17496번: 스타후르츠 1, 11, 21, 31, 41 일에 스타후르츠 씨앗을 심으면 됩니다. 51일에 심으면 61일에 수확이 가능한데 여름은 60일까지 이므로 61일에는 수확할 수 없습니다. 따라서 총 5 * 300 = 1500개의 스타후르츠를 수확 www.acmicpc.net 1일부터 N일까지 씨앗을 심었을 때 기간으로 나눠준 뒤 한 번에 심을 수 있는 씨앗과 가격을 각각 곱해주면 결과를 얻을 수 있다. N, T, C, P = map(int, input().split()) print((N - 1) // T * C * P)
백준 BAEKJOON 11943번 파일 옮기기 [PYTHON/파이썬] (BRONZE Ⅳ) https://www.acmicpc.net/problem/11943 11943번: 파일 옮기기 첫 번째 줄에는 첫 번째 바구니에 있는 사과와 오렌지의 수 A, B가 주어진다. (0 ≤ A, B ≤ 1,000) 두 번째 줄에는 두 번째 바구니에 있는 사과와 오렌지의 수 C, D가 주어진다. (0 ≤ C, D ≤ 1,000) www.acmicpc.net ① 첫 번째 바구니의 사과 + 두 번째 바구니의 오렌지 ② 첫 번째 바구니의 오렌지 + 두 번째 바구니의 사과 ①, ②의 최솟값을 구하면 된다. A, B = map(int, input().split()) C, D = map(int, input().split()) prin..
백준 BAEKJOON 10093번 숫자 [PYTHON/파이썬] (BRONZE Ⅱ) https://www.acmicpc.net/problem/10093 10093번: 숫자 두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오. www.acmicpc.net 주어지는 A, B를 확인하여 작은 수를 A, 큰 수를 B에 저장한 후 for문을 돌려 A, B 사이의 정수를 확인하면 된다. A, B = map(int, input().split()) if A > B: A, B = B, A result = [i for i in range(A + 1, B)] print(len(result)) # 리스트 개수 출력 print(*result) # 리스트 한 줄 출력