문제 링크 13241번: 최소공배수 정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다 www.acmicpc.net 문제 풀이 a, b = map(int, input().split()) def gcd(a, b): while b: mod = b b = a % b a = mod return a print(a*b//gcd(a, b)) *key point: 유클리드 호제법으로 최대공약수를 구하고 최대공약수로 최소 공배수를 구한다.
문제 링크 14215번: 세 막대 첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다. www.acmicpc.net 문제 풀이 length = sorted(list(map(int, input().split()))) if length[0] + length[1] > length[2]: print(sum(length)) else: print(sum(length) + (length[0] + length[1] - length[2] - 1)) *key point: 짧은 두 변의 합이 긴 변 보다 작은 경우 줄여야 하는 긴 변의 길이를 고려해준다.
문제 링크 5073번: 삼각형과 세 변 각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오. www.acmicpc.net 문제 풀이 while 1: a, b, c = map(int, input().split()) if a == 0 and b == 0 and c == 0: break list = sorted([a, b, c], reverse=True) if list[0] < list[1] + list[2]: if a == b == c: print("Equilateral") elif a == b or b == c or a == c: print("Isosceles") else: print("Scalene") else: print("Invalid") ..
문제 링크 24313번: 알고리즘 수업 - 점근적 표기 1 f(n) = 7n + 7, g(n) = n, c = 8, n0 = 1이다. f(1) = 14, c × g(1) = 8이므로 O(n) 정의를 만족하지 못한다. www.acmicpc.net 문제 풀이 a1, a2 = map(int, input().split()) c = int(input()) n0 = int(input()) if a1 * n0 + a2
문제 링크 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 풀이 def isPromising(x): for i in range(x): if (chess_table[x] == chess_table[i]) or (x - i == abs(chess_table[x] - chess_table[i])): return 0 return 1 def nqueen(x): global cnt if x == n: cnt += 1 return for i in range(n): chess_table[x] = i if isPromising(x) =..
문제 링크 24416번: 알고리즘 수업 - 피보나치 수 1 오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍 www.acmicpc.net 문제 풀이 def fib(n): global fibCnt if n == 1 or n == 2: return 1 # 코드1 else: fibCnt += 1 return (fib(n - 1) + fib(n - 2)) def fibonacci(n): global fibonacciCnt f = [0 for _ in range(n+1)] f[1], f[2] = 1, 1 for i in range(3, n+1): fibonacciCnt += 1 f[..
문제 링크 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 풀이 n, m = map(int, input().split()) case = [] def recursive(): if len(case) == m: print(' '.join(map(str, case))) return for i in range(1, n + 1): if len(case) != 0: if i < case[-1]: continue case.append(i) recursive() case.pop() recursive() *key poin..
문제 링크 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 풀이 n, m = map(int, input().split()) case = [] def recursive(): if len(case) == m: print(' '.join(map(str, case))) return for i in range(1, n + 1): case.append(i) recursive() case.pop() recursive() *key point: 15649번 문제에서 continue 시키는 부분을 없애면 조건을 만족시킬 ..
문제 링크 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 풀이 n, m = map(int, input().split()) case = [] def recursive(): if len(case) == m: print(' '.join(map(str, case))) return for i in range(1, n + 1): if i in case: continue if len(case) != 0: if i < case[-1]: continue case.append(i) recursive() case.pop(..
문제 링크 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 풀이 n, m = map(int, input().split()) case = [] def recursive(): if len(case) == m: print(' '.join(map(str, case))) return for i in range(1, n + 1): if i in case: continue case.append(i) recursive() case.pop() recursive() *key point: 재귀함수를 이용하여 문제를 푼다. ..
- Total
- Today
- Yesterday
- 25192
- 26069
- 13241
- 24313
- 2053
- Wil
- 2903
- 17103
- 2738
- 항해 플러스
- 5597
- 24723
- Python
- MySQL
- 4134
- 10807
- 20920
- 코육대
- 벡준
- 13909
- SQL
- 항해+
- 2587
- 24060
- programmer
- 25501
- 1269
- Programmers
- 백준
- til
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |