전체 글

지식을 정리하고 공유하는 공간
백준[baekjoon]/Python

백준(baekjoon) [Python] - 13241번: 최소공배수

https://www.acmicpc.net/problem/13241 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 ## 최소공배수 import sys input = sys.stdin.readline def gcd(a, b): while b > 0: a, b = b, a % b return a a, b = map(int, input().split()) print(int(a * b / gcd(a, b))) MEMO -- 유클리드 호제법을 ..

백준[baekjoon]/Python

백준(baekjoon) [Python] - 11729번: 하노이 탑 이동 순서

https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net ## 하노이 탑 이동 순서 import sys input = sys.stdin.readline def hanoi(start, temp, end, n): if n == 1: print(f"{start} {end}") else: ## 맨 밑의 원판을 제외한 나머지 원판을 임시 기둥 temp로 이동 hanoi(start, end, temp, n - 1) ## 남은 맨 맽의 원판 하나를 목적..

백준[baekjoon]/Python

백준(baekjoon) [Python] - 2750번: 수 정렬하기

https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net ## 수 정렬하기 import sys input = sys.stdin.readline n = int(input()) arr = [] for _ in range(n): arr.append(int(input())) ## 내장함수 sort 이용 """arr.sort()""" ## 버블정렬 """for i in range(len(arr) - 1): for j in range(len(arr) - 1 - i): i..

백준[baekjoon]/Python

백준(baekjoon) [Python] - 9506번: 약수들의 합

https://www.acmicpc.net/problem/9506 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net ## 약수들의 합 import sys input = sys.stdin.readline n = int(input()) while n != -1: arr = [] sum = 0 for i in range(1, n): if n % i == 0: sum += i arr.append(i) if sum == n: print(f"{n} = ", end = '') for i in range(len(arr..

백준[baekjoon]/Python

백준(baekjoon) [Python] - 2292번: 벌집

https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net ## 벌집 import sys input = sys.stdin.readline n = int(input()) ans = 1 start = 1 while n > start: start += 6 * ans ans += 1 print(ans) MEMO -- 2 ~ 7 --> ans: 2, 총 6개 -- 8 ~ 19 --> ans: 3, 총 12개 -- 20 ~ 37 --> ans: 4, 총 18개 -- 위처럼 ..

백준[baekjoon]/Python

백준(baekjoon) [Python] - 2563번: 색종이

https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net ## 색종이 import sys input = sys.stdin.readline t = int(input()) arr = [[0 for _ in range(100)] for _ in range(100)] for _ in range(t): x, y = map(int, input().split()) for i in range(x, x + 10): for j in range(y, y + 10): arr[i..

백준[baekjoon]/Python

백준(baekjoon) [Python] - 2566번: 최댓값

https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net ~~ 1 ~~ ## 최댓값 import sys arr = [list(map(int, sys.stdin.readline().split())) for _ in range(9)] ans = -1 x, y = 0, 0 for i in range(9): for j in range(9): if arr[i][j] > ans: ans = arr[i][j] x, y = i + 1, j + 1 print(ans) print(x, y)..

백준[baekjoon]/Python

백준(baekjoon) [Python] - 2738번: 행렬 덧셈

https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net ~~ 1 ~~ ## 행렬 덧셈 import sys n, m = map(int, sys.stdin.readline().split()) arr1 = [0 for _ in range(n)] for i in range(n): arr1[i] = list(map(int, sys.stdin.readline().split())) arr2 = [0 for _ in range(n)] for i in ..

백준[baekjoon]/Python

백준(baekjoon) [Python] - 10988번: 팰린드롬인지 확인하기

https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net ~~ 1 ~~ ## 팰린드롬인지 확인하기 import sys input_str = sys.stdin.readline() flag = 0 str_len = len(input_str) - 1 for i in range(str_len // 2): if input_str[i] != input_str[str_len - i - 1]: flag = 1 break if flag == 1: print(0) else: print(1) ~~ 2 ~~ import sys ..

백준[baekjoon]/C언어

백준(baekjoon) [C] - 11659번: 구간 합 구하기 4

https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net ~~ 1 ~~ #include // 구간 합 구하기 4 int main() { int n, m; scanf("%d %d", &n, &m); int arr[100001]; for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } int ans[100001], sum = 0; for (int i = 0; i < n; i++) { sum +..

_KTH_
KTHYEONG