시간제한 : 2초메모리 제한 : 256MB
문제
주어진 int[] divisors와 int[] multiples에 대하여 divisors의 공배수이며 multiples의 공약수인 양수의 개수를 반환하여라.
제약 및 참고 사항
divisors와 multiples는 각각 1개 이상, 50개 이하의 요소를 가진다.
divisors와 multiples읭 각 요소는 1 이상, 10^9 이하이다.
예제
int[] divisors = {1}
int[] multiples = {100} 결과 : 9
1, 2, 4, 5, 10, 20, 25, 50, 100가 문제의 조건에 맞는 숫자들이다.
int[] divisors = {6,9}
int[] multiples = {18} 결과 : 1
문제의 조건에 맞는 숫자는 18이 유일하다.
int[] divisors = {6,9}
int[] multiples = {96,180} 결과 : 0
int[] divisors = {2,4}
int[] multiples = {256} 결과 : 7
int[] divisors = {1,2,3,4,5}
int[] multiples = {60,120} 결과 : 1
---구가 흥미 있는 화제는 first[i]와 second[i] 이다. 즐거운 파티가 되려면 제시가 초대할 수 있는 친구는 최대 몇 명인지 리턴하시오.
제약 및 참고 사항
firest :
1~50개의 요소를 갖는 배열이다.
second :
first와 같은 크기의 배열이다.
first, second 공통 :
각 요소는 1~15개의 문자이며, 각 문자는 영어 소문자이다.
i번재 요소 first[i]와 second[i]의 내용은 다르다.
예제
String[] first = {"fishing","gardening","swimming","fishing"}
String[] second = {"hunting","fishing","fishing","biting"} 결과 : 4
String[] first = {"variety","diversity","loquacity","courtesy"}
String[] second = {"talking","speaking","discussion","meeting"} 결과 : 1
String[] first = {"snakes","programming","cobra","monty"}
String[] second = {"python","python","anaconda","python"} 결과 : 3
String[] first = {"t","o","p","c","o","d","e","r","s","i","n","g","l","e","r","o","u","n","d","m","a","t","c","h","f","o","u","r","n","i"}
String[] second = {"n","e","f","o","u","r","j","a","n","u","a","r","y","t","w","e","n","t","y","t","w","o","s","a","t","u","r","d","a","y"} 결과 : 6
String[] first = {"firsttopic"}
String[] second = {"secondtopic"} 결과 : 13/4 숫자 8 제거하기
시간제한 : 2초메모리 제한 : 256MB
문제
사이클리스트는 숫자 8이 부서진 바퀴를 연상하기 때문에 싫어한다. 최근에 모스크바의 시장이 모든 사이클리스트가 식별 번호를 가지도록 강요했다. Vasya는 다음과 같은 선택권이 있다:
low와 high 사이의 어떤 숫자도 고를 수 있다.
그는 식별 번호에 포함되는 8의 개수가 최소가 되기를 원한다.
그의 식별 번호에 포함될 수 있는 최소의 8의 개수를 반환하라.
제약 및 참고 사항
low는 최소값 1, 최대값 2000000000의 범위를 가진다.
high는 최소값 low, 최대값 2000000000의 범위를 가진다.
예제
int low = 1
int high = 10 결과 : 0
8이 아닌 어떤 숫자라도 괜찮다.
int low = 88
int high = 88 결과 : 2
선택할 수 있는 숫자는 오직 88 뿐이다.
int low = 800
int high = 899 결과 : 1
첫 번째 숫자 8 은 피할 수 없다.
int low = 8808
int high = 8880 결과 : 2
int low = 8
int high = 88 결과 : 0
4/4 토너먼트 심판
시간제한 : 2초메모리 제한 : 256MB
문제
당신은 생각 대결 올림픽의 심판으로 고용되었다. 당신은 연속된 사건에서 선수의 성과를 바탕으로 최종 점수를 계산하는 일을 맡았다. 각 사건에서 당신은 선수에게 기본 점수를 준다. 최종 점수는 각 사건의 조정된 점수의 총합이다.
한 사건의 조정된 점수를 구하기 위해서는 그 사건의 변환 인자로 기본 점수를 나누고 가장 가까운 정수로 반올림한다 (0.5는 더 큰 숫자로 반올림 한다). int[] rawScores와 int[] conversionFactors가 주어진다. rawScores의 i번째 요소는 i번째 사건의 기본 점수이며 conversionFactors의 i번째 요소는 i번째 사건의 변환 인자이다. 선수의 최종 점수를 반환하여라.
제약 및 참고 사항
rawScores는 최소 1개, 최대 50개의 요소를 가진다.
rawScores의 각 요소는 최소값 1, 최대값 1,000,000의 범위를 가진다.
conversionFactors는 rawScore와 동일한 개수의 요소를 가진다.
conversionFactors의 각 요소는 최소값 1, 최대값 1,000,000의 범위를 가진다.
예제
std::vector rawScores = {10,20,30}
std::vector conversionFactor = {10,10,5} 결과 : 9
선수는 각각 1, 2, 6점을 받았다.
std::vector rawScores = {8,16,32}
std::vector conversionFactor = {10,10,5} 결과 : 9
반올림 때문에 선수는 이번에도 1, 2, 6점을 받았다.
std::vector rawScores = {60,59}
std::vector conversionFactor = {24,24} 결과 : 5
반올림에 유의해야 한다. (0.5 는 올림한다).
std::vector rawScores = {1,2,3,4,5,6,7,8,9,10}
std::vector conversionFactor = {11,12,13,14,15,16,17,18,19,20} 결과 : 1
std::vector rawScores = {1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000}
std::vector conversionFactor = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} 결과 : 50000000
8년 전
0개의 댓글이 있습니다.
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면
온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야
합니다. 현재 문제를 푸셨습니다.
희
1/4 공약수와 공배수
시간제한 : 2초메모리 제한 : 256MB
문제
주어진 int[] divisors와 int[] multiples에 대하여 divisors의 공배수이며 multiples의 공약수인 양수의 개수를 반환하여라.
제약 및 참고 사항
divisors와 multiples는 각각 1개 이상, 50개 이하의 요소를 가진다.
divisors와 multiples읭 각 요소는 1 이상, 10^9 이하이다.
예제
int[] divisors = {1}
int[] multiples = {100} 결과 : 9
1, 2, 4, 5, 10, 20, 25, 50, 100가 문제의 조건에 맞는 숫자들이다.
int[] divisors = {6,9}
int[] multiples = {18} 결과 : 1
문제의 조건에 맞는 숫자는 18이 유일하다.
int[] divisors = {6,9}
int[] multiples = {96,180} 결과 : 0
int[] divisors = {2,4}
int[] multiples = {256} 결과 : 7
int[] divisors = {1,2,3,4,5}
int[] multiples = {60,120} 결과 : 1
---구가 흥미 있는 화제는 first[i]와 second[i] 이다. 즐거운 파티가 되려면 제시가 초대할 수 있는 친구는 최대 몇 명인지 리턴하시오.
제약 및 참고 사항
firest :
1~50개의 요소를 갖는 배열이다.
second :
first와 같은 크기의 배열이다.
first, second 공통 :
각 요소는 1~15개의 문자이며, 각 문자는 영어 소문자이다.
i번재 요소 first[i]와 second[i]의 내용은 다르다.
예제
String[] first = {"fishing","gardening","swimming","fishing"}
String[] second = {"hunting","fishing","fishing","biting"} 결과 : 4
String[] first = {"variety","diversity","loquacity","courtesy"}
String[] second = {"talking","speaking","discussion","meeting"} 결과 : 1
String[] first = {"snakes","programming","cobra","monty"}
String[] second = {"python","python","anaconda","python"} 결과 : 3
String[] first = {"t","o","p","c","o","d","e","r","s","i","n","g","l","e","r","o","u","n","d","m","a","t","c","h","f","o","u","r","n","i"}
String[] second = {"n","e","f","o","u","r","j","a","n","u","a","r","y","t","w","e","n","t","y","t","w","o","s","a","t","u","r","d","a","y"} 결과 : 6
String[] first = {"firsttopic"}
String[] second = {"secondtopic"} 결과 : 13/4 숫자 8 제거하기
시간제한 : 2초메모리 제한 : 256MB
문제
사이클리스트는 숫자 8이 부서진 바퀴를 연상하기 때문에 싫어한다. 최근에 모스크바의 시장이 모든 사이클리스트가 식별 번호를 가지도록 강요했다. Vasya는 다음과 같은 선택권이 있다:
low와 high 사이의 어떤 숫자도 고를 수 있다.
그는 식별 번호에 포함되는 8의 개수가 최소가 되기를 원한다.
그의 식별 번호에 포함될 수 있는 최소의 8의 개수를 반환하라.
제약 및 참고 사항
low는 최소값 1, 최대값 2000000000의 범위를 가진다.
high는 최소값 low, 최대값 2000000000의 범위를 가진다.
예제
int low = 1
int high = 10 결과 : 0
8이 아닌 어떤 숫자라도 괜찮다.
int low = 88
int high = 88 결과 : 2
선택할 수 있는 숫자는 오직 88 뿐이다.
int low = 800
int high = 899 결과 : 1
첫 번째 숫자 8 은 피할 수 없다.
int low = 8808
int high = 8880 결과 : 2
int low = 8
int high = 88 결과 : 0
4/4 토너먼트 심판
시간제한 : 2초메모리 제한 : 256MB
문제
당신은 생각 대결 올림픽의 심판으로 고용되었다. 당신은 연속된 사건에서 선수의 성과를 바탕으로 최종 점수를 계산하는 일을 맡았다. 각 사건에서 당신은 선수에게 기본 점수를 준다. 최종 점수는 각 사건의 조정된 점수의 총합이다.
한 사건의 조정된 점수를 구하기 위해서는 그 사건의 변환 인자로 기본 점수를 나누고 가장 가까운 정수로 반올림한다 (0.5는 더 큰 숫자로 반올림 한다). int[] rawScores와 int[] conversionFactors가 주어진다. rawScores의 i번째 요소는 i번째 사건의 기본 점수이며 conversionFactors의 i번째 요소는 i번째 사건의 변환 인자이다. 선수의 최종 점수를 반환하여라. rawScores = {10,20,30} conversionFactor = {10,10,5} 결과 : 9 rawScores = {8,16,32} conversionFactor = {10,10,5} 결과 : 9 rawScores = {60,59} conversionFactor = {24,24} 결과 : 5 rawScores = {1,2,3,4,5,6,7,8,9,10} conversionFactor = {11,12,13,14,15,16,17,18,19,20} 결과 : 1 rawScores = {1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000} conversionFactor = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} 결과 : 50000000
제약 및 참고 사항
rawScores는 최소 1개, 최대 50개의 요소를 가진다.
rawScores의 각 요소는 최소값 1, 최대값 1,000,000의 범위를 가진다.
conversionFactors는 rawScore와 동일한 개수의 요소를 가진다.
conversionFactors의 각 요소는 최소값 1, 최대값 1,000,000의 범위를 가진다.
예제
std::vector
std::vector
선수는 각각 1, 2, 6점을 받았다.
std::vector
std::vector
반올림 때문에 선수는 이번에도 1, 2, 6점을 받았다.
std::vector
std::vector
반올림에 유의해야 한다. (0.5 는 올림한다).
std::vector
std::vector
std::vector
std::vector
8년 전