목록전체 글 (298)
개발자 뺚
시간 제한 : 1 초 메모리 제한 : 512 MB 문제 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시간을 예제 출력과 같은 방식으로 출력해보자. MenOfPassion 알고리즘은 다음과 같다. MenOfPassion(A[], n) { i = ⌊n / 2⌋; return A[i]; # 코드1 } 입력 첫째 줄에 입력의 크기 n(1 ≤ n ≤ 500,000)이 주어진다. 출력 첫째 줄에 코드1 의 수행 횟수를 출력한다. 둘째 줄에 코드1의 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 단, 다항식으로 나타낼 수 없거나 최고차항의 차수가..
시간 제한 : 2 초 메모리 제한 : 128 MB 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 ..
시간 제한 : 2 초 메모리 제한 : 128 MB 문제 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500) 출력 첫째 줄에 구한 0의 개수를 출력한다. n = int(input()) count_two = 0 count_five = 0 for i in range(1, n + 1): while i % 2 == 0: i = i // 2 count_two += 1 while i % 5 == 0: i = i // 5 count_five += 1 print(min(count_two, count_five))
시간 제한 : 2 초 메모리 제한 : 256 MB 문제 N개의 정수가 주어지면, 이 정수들의 합 S의 부호를 구하는 프로그램을 작성하시오. 입력 총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1 ≤ N ≤ 100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거나 같다. 출력 총 3개의 줄에 걸쳐 각 테스트 셋에 대해 N개의 정수들의 합 S의 부호를 출력한다. S=0이면 "0"을, S>0이면 "+"를, S
시간 제한 : 1 초 메모리 제한 : 512 MB 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B (-10^10000 ≤ A, B ≤ 10^10000)가 주어진다. 출력 첫째 줄에 A+B를 출력한다. 서브태스크 번호 배점 제한 1 5 0 ≤ A, B ≤ 10 2 10 -100 ≤ A, B ≤ 100 3 10 0 ≤ A, B ≤ 10^9 4 15 -10^9 ≤ A, B ≤ 10^9 5 15 0 ≤ A, B ≤ 2^60 6 20 -2^60 ≤ A, B ≤ 2^60 7 20 0 ≤ A, B ≤ 10^10000 8 5 -10^10000 ≤ A, B ≤ 10^10000 print(sum(list(map(int, input().split(" ")))))
시간 제한 : 1 초 메모리 제한 : 512 MB 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B (-10^10000 ≤ A, B ≤ 10^10000)가 주어진다. 출력 첫째 줄에 A+B를 출력한다. 서브태스크 번호 배점 제한 1 5 0 ≤ A, B ≤ 10 2 10 -100 ≤ A, B ≤ 100 3 10 0 ≤ A, B ≤ 10^9 4 15 -10^9 ≤ A, B ≤ 10^9 5 15 0 ≤ A, B ≤ 2^60 6 20 -2^60 ≤ A, B ≤ 2^60 7 20 0 ≤ A, B ≤ 10^10000 8 5 -10^10000 ≤ A, B ≤ 10^10000 ~+
시간 제한 : 0.1 초 메모리 제한 : 1024 MB 문제 양의 정수 W, H가 주어진다. 밑변의 길이가 W이고, 높이가 H인 삼각형의 넓이를 구하시오. 입력 정수 W, H가 공백으로 구분되어 주어진다. (1 ≤ W, H ≤ 100) 출력 밑변의 길이가 W이고, 높이가 H인 삼각형의 넓이를 출력한다. 넓이는 항상 소수점 아래 첫 번째 자리까지 출력한다. w, h = map(float, input().split(" ")) print("{:.1f}".format(w * h / 2))
시간 제한 : 1 초 메모리 제한 : 256 MB 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. n = int(input()) cordinate = [list(map(int, input().split(" "))) for _ in range(n)] for i in sorted(cordin..