[BAEKJOON] 1929번: 소수 구하기
문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 코드 import sys input = sys.stdin.readline max_ = 1_000_000 check = [0] * (max_+1) check[0], check[1] = True,True for i in range(2, max_): j = i + i while j
문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 코드 import sys input = sys.stdin.readline max_ = 1_000_000 check = [0] * (max_+1) check[0], check[1] = True,True for i in range(2, max_): j = i + i while j
문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 코드 1. 반복문 돌면서 소수 여부 판별 import sys, math input = sys.stdin.readline n = int(input()) num = list(map(int, input().split())) # 소수 카운트 하기 cnt = 0 for i in num: # 0과 1은 소수가 아니니까 continue if i == 0 or i == 1: continue # 소수는 1과 자기 자신만 약수로 가지는 수 for j in range(2, int(i**0.5)+1): if i % j == 0: # 1과 자기 자신말고 나누어 지는 수 == 약수 아님 break else: cnt += 1 print(cnt) ..
문제 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있으며, 최소 공배수는 30이다. 두 자연수 A와 B가 주어졌을 때, A와 B의 최소공배수를 구하는 프로그램을 작성하시오. 코드 import sys, math input = sys.stdin.readline n = int(input()) for _ in range(n): a, b = map(int, input().split()) print(math.lcm(a,b)) 나의 생각
문제 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 코드 import sys, math input = sys.stdin.readline a, b = map(int, input().split()) print(math.gcd(a,b), (a*b)//math.gcd(a,b), sep='\n') 나의 생각 찾아보니 최소공배수 구하는 함수도 math 모듈에 내장되어 있는데 3.9 버전 이상부터 사용 가능하다. import sys, math input = sys.stdin.readline a, b = map(int, input().split()) print(math.gcd(a,b), math.lcm(a,b), sep='\n')
문제 (A+B)%C는 ((A%C) + (B%C))%C 와 같을까? (A×B)%C는 ((A%C) × (B%C))%C 와 같을까? 세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오. 코드 import sys input = sys.stdin.readline A, B, C = map(int, input().split()) print((A+B)%C) print(((A%C) + (B%C))%C) print((A*B)%C) print(((A%C) * (B%C))%C) 나의 생각 print() 함수의 seq 매개변수는 출력하려는 여러 인자들을 연결하고, 이들 사이에 구분자를 지정할 때 사용되는 매개변수이다. 이것을 활용하면 print() 함수 한개로 출력이 가능하다. A, B, C ..
문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력으로 주어진 괄호 문자열이..
문제 정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여덟 가지이다. push_front X: 정수 X를 덱의 앞에 넣는다. push_back X: 정수 X를 덱의 뒤에 넣는다. pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 덱에 들어있는 정수의 개수를 출력한다. empty: 덱이 비어있으면 1을, 아니면 0을 출력한다. front: 덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에..
문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. 코드 import sys input = sys.stdin.readline n = int(..
문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 코드 import sys input = sys.stdin.readline n = int(input()) for i in range(n): str_ = input().rstrip().split() for s in str_: print(s[::-1], end=" ") 생각 정리 음 생각해보니까 스택을 이용해서 풀 수 있겠다는 생각이 들었다. 아 그리고 sys.stdin.readline()을 사용하여 입력을 받을 때 문자열의 끝에 개행 문자(\n)가 포함될 수 있기 때문에 rstrip() 함수를 이용해서 문자열의 끝에 있는 불필요한 공백이나 개행 문자를 ..
문제 설명 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. 제한사항 0