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..
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..
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개 -- 위처럼 ..
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..
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)..
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 ..
https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net ## 약수 구하기 import sys n, k = map(int, sys.stdin.readline().split()) arr = [] for i in range(1, n + 1): if n % i == 0: arr.append(i) arr.sort() if len(arr) < k: print(0) else: print(arr[k - 1]) MEMO !! 알고있던 리스트 사용법 복습 !!
https://www.acmicpc.net/problem/10812 10812번: 바구니 순서 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net ## 바구니 순서 바꾸기 import sys n, m = map(int, sys.stdin.readline().split()) arr = [i for i in range(1, n + 1)] for _ in range(m): i, j, k = map(int, sys.stdin.readline().split()) i, j, k = i - 1, j - 1, k - 1 arr = arr[:i..
https://www.acmicpc.net/problem/10810 10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 www.acmicpc.net ## 공 넣기 import sys n, m = map(int, sys.stdin.readline().split()) arr = [0 for _ in range(n + 1)] for _ in range(m): start, end, num = map(int, sys.stdin.readline().split()) for j in range(start, end + 1): arr[j] = num for ..
https://www.acmicpc.net/problem/10813 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net n, m = map(int, input().split()) arr = [] for i in range(n): arr.append(i + 1) for i in range(m): a, b = map(int, input().split()) arr[a - 1], arr[b - 1] = arr[b - 1], arr[a - 1] for i in range(n): print(arr[i]) MEMO -- 배열의 ..