2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net N, M = map(int, input().split()) matrix1, matrix2 = [], [] for i in range(N): matrix1.append(list(map(int,input().split()))) for i in range(N): matrix2.append(list(map(int,input().split()))) for i in range(N): for j in range(M): print(matrix1[i][j] + m..
5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net attendance_num= [i for i in range(1,31)] for _ in range(28): n = int(input()) attendance_num.remove(n) print(attendance_num[0], attendance_num[1], sep='\n') *key point: 미리 리스트를 만들어 둔 뒤 입력 받은 값들을 제외해 나가면 원하는 값만 남게 된다.
10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net N = int(input()) num_list = list(map(int, input().split())) v = int(input()) cnt = 0 for i in range(len(num_list)): if num_list[i] == v: cnt += 1 print(cnt) *key point: 주어진 숫자 목록을 1차원 배열을 활용하여 할당하고, 반복문과 조건문을 이용하여 주어진 v값과 비교한다. 같은 수를 세기 위해서는 cnt라는 변수를 만들..
2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net N = int(input()) res = 0 for i in range(1, N+1): de_sum = i + sum(list(map(int, str(i)))) if(de_sum == N): res = i break print(res) *key point: sum, list, map, str 함수를 활용하여 주어진 숫자의 각자리수를 더할 수 있다. 조건문과 반복문을 이용하여 분해합과 자연수를 비교하여 생성자를 찾는다.
2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net N, M = map(int, input().split()) num_list = list(map(int, input().split())) res = 0 for i in range(0, N): for j in range(i+1, N): for k in range(j+1, N): num_sum = num_list[i] + num_list[j] + num_list[k] if(num_sum
11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net def hanoi(n, s, e): #hanoi(n개의 원판, 시작 장대, 도착 장대) if n == 1 : #원판이 1개인 경우 print(s, e) return hanoi(n - 1, s, 6 - s - e) #n-1개의 원판 중간 장대로 이동 print(s, e) #가장 큰 원판 도착 장대로 이동 hanoi(n - 1, 6 - s - e, e) #n-1개의 원판 도착 장대로 이동 N = int(input()) print(2**N - 1) #옮긴 ..
2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net def draw(scale): if scale == 3: return ['***','* *','***'] star_unit = draw(scale // 3) star_res = [] for star in star_unit: star_res.append(star * 3) for star in star_unit: star_res.append(star + ' ' * (scale//3) + star) for star in star_unit: ..
24060번: 알고리즘 수업 - 병합 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net def merge_sort(A, p, r): # A[p ~ r]을 오름차순 정렬한다. if p < r: q = (p + r) // 2; # q는 p, r의 중간 지점 merge_sort(A, p, q) # 전반부 정렬 merge_sort(A, q + 1, r) # 후반부 정렬 merge(A, p, q, r) # 병합 # A[p~q]와 A[(q+1)~r]을 병합하여 A[p~r]을 오름차순 정렬된 상태로 만든다. # A..
25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net def recursion(s, l, r): global cnt cnt += 1 if l >= r: return 1 elif s[l] != s[r]: return 0 else: return recursion(s, l+1, r-1) def isPalindrome(s): return recursion(s, 0, len(s)-1) T = int(input()) for i in range(T): s = input() cnt = 0 print(isPalindrome(s), cnt) *key point: 함수 호출 횟수를 할당할..
- Total
- Today
- Yesterday
- 4134
- 24060
- Wil
- 2738
- 항해+
- 1269
- 26069
- 5597
- 25501
- 항해 플러스
- Python
- 13241
- 20920
- Programmers
- 24313
- 2587
- MySQL
- 25192
- 24723
- 백준
- 벡준
- SQL
- 코육대
- 2053
- 10807
- 2903
- programmer
- til
- 17103
- 13909
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |