분류 전체보기 219

[배열/Python] 4344번: 평균은 넘겠지 - 효과는 굉장했다!

4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 알고리즘 분류 수학 사칙연산 SOLUTION import sys C = int(sys.stdin.readline()) for _ in range(C): N, *score = map(int, sys.stdin.readline().split()) average = sum(score) / N cnt = 0 for i in score: if i > average: cnt += 1 # format함수를 이용해 소수점 셋째자리까지 출력 print("{:.3f}".format(cnt/N * 100)+"%")

[배열/Python] 10818번: 최소, 최대 - 효과는 굉장했다!

10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 알고리즘 분류 수학 구현 SOLUTION import sys N = int(sys.stdin.readline()) N_list = list(map(int, sys.stdin.readline().split())) # list로 숫자들을 입력받음 print(min(N_list), max(N_list)) # list안의 가장 큰 수, 작은 수를 max(), min() 함수를 통해 출력

[while문/Python] 10951번: A+B - 4 - 효과는 굉장했다!

10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 알고리즘 분류 수학 구현 사칙연산 SOLUTION import sys while True: try: A, B = map(int, sys.stdin.readline().split()) print(A+B) except: break ※ try, except문 try 블록 수행 중 오류가 발생하면 except 블록이 수행된다. 하지만 try 블록에서 오류가 발생하지 않는다면 except 블록은 수행되지 않는다.

[while문/Python] 1110번: 더하기 사이클 - 효과는 굉장했다!

1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 알고리즘 분류 수학 구현 SOLUTION import sys N = int(sys.stdin.readline()) tmp = N cnt = 0 while True: cnt += 1 tmp = (tmp % 10 * 10) + (tmp // 10 + tmp % 10) % 10 if tmp == N: print(cnt) break

[for문/Python] 2439번: 별 찍기 - 2 - 효과는 굉장했다!

2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 알고리즘 분류 구현 SOLUTION import sys N = int(sys.stdin.readline()) for i in range(1,N+1): print((i*"*").rjust(N)) rjust() 함수는 문자열을 오른쪽 정렬하도록 만들어준다.

[for문/Python] 10871번: X보다 작은 수 - 효과는 굉장했다!

10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 알고리즘 분류 수학 구현 SOLUTION import sys N, X = map(int, sys.stdin.readline().split()) A = [num for num in sys.stdin.readline().split() if int(num) < X] print(*A)

[Baekjoon/Python] 11403번: 경로 찾기 - 효과는 굉장했다!

11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net 알고리즘 분류 그래프 이론 그래프 탐색 플로이드-와샬 SOLUTION import sys N = int(sys.stdin.readline()) path = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] #플로이드-와샬 알고리즘 for k in range(N): for i in range(N): for j in range(N): if path[i][k] and path[k][j]: path[i][j] = 1 for row in path: ..

[Baekjoon/Python] 11286번: 절댓값 힙 - 효과는 굉장했다!

11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 알고리즘 분류 자료 구조 우선순위 큐 SOLUTION import sys import heapq N = int(sys.stdin.readline()) heap = [] for _ in range(N): x = int(sys.stdin.readline()) if x != 0: if x < 0: heapq.heappush(heap, [-x,x]) else: heapq.heappush(heap, [x,x]) else: if heap == []: p..

[Baekjoon/Python] 6064번: 카잉 달력 - 효과는 굉장했다!

6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 알고리즘 분류 수학 정수론 중국인의 나머지 정리 SOLUTION import sys def calender(M, N, x, y): # 마지막해는 M 과 N의 최소공배수 이므로 최대 M * N 까지 범위를 가진다 while x x+M번째(x+M,?) -> x+M+M번째(x+M+M,?) # y는 y+N 번째 마다 돌아온다 y번째(?,y) -> y+N번째(?,y+N) -> y+N+N번째(?,y+N+N) print(calender(M, N, x, y))