반응형

알고리즘 142

[파이썬, Python] 백준 10989: 수 정렬하기 3

문제 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) num_list = [0]*10001 for _ in range(n): num = int(input()) num_list[num] += 1 for i in range(10001): if num_list[i] != 0: for j in range(num_list[i]): print(i) 설명 카운팅 정렬이라는 ..

[파이썬, Python] 백준 25305: 커트라인

문제 https://www.acmicpc.net/problem/25305 25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net 코드 n, k = map(int,input().split()) x = list(map(int, input().split())) x.sort(reverse=True) print(x[k-1]) 설명 우선 입력값을 다 입력 받아준다. 이후 (reverse=True)를 사용해서 역순으로 정렬해서 k-1(k번째 이므로)을 출력해준다.

[파이썬, Python] 백준 2587: 대표값2

문제 https://www.acmicpc.net/problem/2587 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net 코드 num_list = [] for _ in range(5): num_list.append(int(input())) num_list.sort() print(sum(num_list)//5) print(num_list[2]) 설명 우선 수를 입력받아서 정렬해준다. 이후 리스트의 합을 5로 나눈 몫을 출력하고, 3번째의 값을 출력하여 중앙값도 출력해준다.

[파이썬, Python] 백준 2750: 수 정렬하기

문제 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 코드 n = int(input()) num_list = [] for _ in range(n): num = int(input()) num_list.append(num) for i in sorted(num_list): print(i) 설명 우선 숫자를 입력받아서 리스트를 만들어준다. 이후 sorted를 사용하여 정렬된 숫자 리스트를 차례대로 출력해 준다.

[파이썬, Python] 백준 2563: 색종이

문제 https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 코드 import sys input = sys.stdin.readline t = int(input()) area = [[0]*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): area[i][j] = 1 cnt = 0 for..

[파이썬, Python] 백준 2566: 최댓값

문제 https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 코드 a = [] max_num = -1 x = 0 y = 0 for _ in range(9): a.append(list(map(int, input().split()))) for i in range(9): for j in range(9): if max_num < a[i][j]: max_num = a[i][j] x = i + 1 y = j + 1 else: continue print(max_num) print(x..

[파이썬, Python] 백준 2738: 행렬 덧셈

문제 https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 코드 n, m = map(int, input().split()) a, b = [], [] for row in range(n): row = list(map(int,input().split())) a.append(row) for row in range(n): row = list(map(int,input().split())) b.append(row) for row in range(n..

[파이썬, Python] 백준 4948: 베르트랑 공준

문제 https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 코드 prime = [] for i in range(2, 246913): cnt = 0 for j in range(2, int(i**0.5)+1): if i % j == 0: cnt += 1 break if cnt == 0: prime.append(i) while True: n = int(input()) primecnt = 0 if n == 0: break for i in prime:..

[파이썬, Python] 백준 1929: 소수 구하기

문제 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 코드 m, n = map(int,input().split()) for i in range(m,n+1): if i == 1: continue for j in range(2, int(i**0.5)+1): if i%j == 0: break else: print(i) 설명 앞선 문제들은 에라토스테네스의 체를 이용하지 않고도 시간초과가 나지 않아서 진행했는데, 이 문제의 경우 이용하지 않으면 시간초과의 늪에서 벗어날 수 없었다. 에..

[파이썬, Python] 백준 11653: 소인수분해

문제 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 코드 n = int(input()) if n == 1: print('') for i in range(2, n+1): if n % i == 0: while n % i == 0: print(i) n = n/i 설명 우선 n을 입력받아주고, n이 1이라면 아무것도 출력하지 않는다. 이외의 케이스는 반복문을 진행해서 해결하는데, 만약 n이 i로 나누어진다면, 각 문장의 i를 출력하고, i로 나누어지는 만큼 나누어준다.(72의 경우 2로 3번까지 나누어지므로 3번 반복) 더 이상 나누어지지 않을 때까지 반복한다.

반응형