인터뷰 : The Front Nine
이것은 면접 질문 프로그래밍에서 영감을 얻은 일련의 과제 중 첫 번째입니다.
미래의 미래 상사가 앉아있는 사무실로 들어갑니다. "와서 앉으세요"라고 그는 말합니다. 긴장하면서도 전문적인 복장에 주름이 없는지 확인하십시오. 그는 당신의 교육, 이전의 직업 경험 등에 관한 많은 질문을합니다. 당신은 대부분 정직하게 대답하며 여기저기서 약간의 꾸밈음을 추가하여 더 나은 소리를냅니다. 그는 앞으로 몸을 기울이고 다시 말하기 시작합니다.
"코드 골프에 대해 들어 본 적이 있습니까?" 예, 골프 코드를 좋아하고 자유 시간에 자주하는 이유는 무엇입니까? "좋아요. 인터뷰의 마지막 부분은 기술 시험입니다. 일련의 문제를 해결하기 위해 코드를 작성해야 할 것입니다." 당신은 그것을 빨리 눈으로 본다. 쉬워요. 이제 왜 코드 골프에 대해 물어 봤습니까?
"이러한 문제에 대한 솔루션의 전체 크기를 기준으로 점수가 매겨집니다. 다른 모든 후보보다 낮은 점수를받을 수 있다면 직업이 본인의 것입니다." 오. "골프처럼, 18 개의 문제가 있으며, 9 개의 두 세트로 나뉩니다. 문제를 해결하기 위해 원하는 언어를 자유롭게 사용하십시오. 우리는 여러분이 들어 본 모든 언어에 대한 컴파일러와 인터프리터를 가지고 있습니다. ‘행운을 빕니다!’
과제들
작업 1 : 곱셈표
숫자 n
를 입력으로 받으면 range의 양의 정수에 대한 곱셈표를 출력하십시오 [1, n]
. n
범위 내에 [1, 12]
있습니다. 모든 숫자는 표에서 왼쪽 정렬되어야합니다. x
왼쪽 상단에 문자 를 사용하십시오 .
예 :
n=4
x 1 2 3 4
1 1 2 3 4
2 2 4 6 8
3 3 6 9 12
4 4 8 12 16
n=10
x 1 2 3 4 5 6 7 8 9 10
1 1 2 3 4 5 6 7 8 9 10
2 2 4 6 8 10 12 14 16 18 20
3 3 6 9 12 15 18 21 24 27 30
4 4 8 12 16 20 24 28 32 36 40
5 5 10 15 20 25 30 35 40 45 50
6 6 12 18 24 30 36 42 48 54 60
7 7 14 21 28 35 42 49 56 63 70
8 8 16 24 32 40 48 56 64 72 80
9 9 18 27 36 45 54 63 72 81 90
10 10 20 30 40 50 60 70 80 90 100
작업 2 : 서수 RMS
ASCII 문자 문자열이 주어지면 ASCII 서수의 평균 제곱근 평균을 출력하십시오 . 문자열은 절대 NULL 바이트를 포함하지 않습니다 (정수 0).
예 :
Input: The Interview: The Front Nine
Output: 95.08290393488019
Input: `1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
Output: 91.38101204135423
과제 3 : 발사체 움직임
지상에서 발사 된 발사체의 수평선과 초기 속도와 각도가 주어지면, 착륙 전에 이동할 수평 거리를 출력하십시오. 초기 속도는 초당 미터로, 각도는 도로, 거리는 미터로 표시됩니다. 지구 중력 ( g=9.81 m/s/s
)을 가정 하고 상대 론적 영향을 무시하십시오. 이 문제를 위해 지구가 평평하다고 가정 할 수 있습니다 (계산할 때 지구의 곡률을 고려할 필요가 없습니다). 주어진 각도는 범위 안에 있습니다 [0, 90]
. 답은 소수점 이하 두 자리 이상이어야합니다 (반올림 가능).
예 :
velocity=50, angle=45
Result: 254.84 (rounded)
velocity=10, angle=60
Result: 8.82798576742547
작업 4 : etaoin shrdlu
Null이 아닌 인쇄 가능한 ASCII 문자 (범위의 소수점) 문자열이 주어지면 문자열을 [32,127]
빈도별로 내림차순으로 정렬하여 문자열을 출력하십시오. 동점 인 경우 ASCII 서수로 오름차순으로 주문하십시오.
예 :
Input: "Hello, World!"
Output: "llloo !,HWder"
Input: "Programming Puzzles and Code Golf"
Output: " oooPPaaddeeggllmmnnrrzzCGfisu"
작업 5 : 피보나치 지수
숫자가 주어지면 피보나치 숫자인지 확인하고, 숫자이면 순서대로 인덱스 (1부터 시작)를 출력하십시오. 피보나치 수가 아닌 경우 0을 출력합니다. 순서가 두 번인 1의 경우 가장 빠른 발생 (인덱스 1)을 출력합니다.
예 :
Input: 1
Output: 1
Input: 144
Output: 12
Input: 4
Output: 0
작업 6 : 아나그램
소문자 영문 ( [a-z]
)으로 구성된 세 개의 문자열이 주어지면 첫 번째 문자열의 모든 문자를 사용하고 두 번째 문자열로 시작하여 세 번째 문자열로 끝나는 문자열을 출력합니다. 이러한 문자열을 구성 할 수 없으면 빈 문자열을 출력하십시오. 입력 문자열은 항상 하나 이상의 문자 길이입니다. 접두사와 접미사 문자열이 소스 문자열의 모든 문자를 사용하는 경우 출력 문자열의 "중간"(접두사와 접미사 문자열 사이)이 비어있을 수 있습니다.
예 :
Input: geobits bi es
Possible output: bigtoes
Input: mariatidaltug digital trauma
Output: digitaltrauma
Input: mego go lf
Output: (empty string)
과제 7 : 빈칸 채우기
문자열 목록과 채우기 문자가 주어지면 모든 문자열을 채우기 문자로 가장 긴 문자열의 길이에 채운 결과를 문자열의 원래 길이에 따라 오름차순으로 정렬하여 경우의 원래 순서를 유지합니다 넥타이. 메모리 제약 조건에 의해서만 제한되는 유한 길이의 문자열을 포함하는 유한 길이의 목록을 처리 할 수 있어야합니다.
예 :
Input: ["hello","world","this","is","a","test"], 'x'
Output: ["axxxx","isxxx","thisx","testx","hello","world"]
Input: ["I'm","a","lumberjack","and","I'm","okay"], '!'
Output: ["a!!!!!!!!!","I'm!!!!!!!","and!!!!!!!","I'm!!!!!!!","okay!!!!!!","lumberjack"]
작업 8 : 변경
범위에 숫자가 주어지면 [0.01,0.99]
, 총 동전 수가 최소화되도록이 값을 나타내는 데 사용해야하는 4 개의 표준 미국 동전 각각의 수를 출력하십시오. 입력 값은 항상 소수점 뒤에 정확히 2 자리가됩니다.
코인 가치 참조 :
Penny: 0.01, Nickel: 0.05, Dime: 0.10, Quarter: 0.25
예 :
Input: 0.75
Output: [0,0,0,3]
Input: 0.23
Output: 3 pennies, 0 nickels, 2 dimes, 0 quarters
작업 9 : 범위 병합
범위를 나타내는 정수를 포함하는 유한 한 2 개의 튜플 목록이 제공되면 모든 겹치거나 인접한 범위를 병합 한 결과를 출력하십시오. 모든 범위는 길이가 1 이상이며 시작 값은 항상 끝 값보다 작습니다. 출력 순서는 중요하지 않습니다.
예 :
Input: (2,3), (4,5), (6,9), (0,7)
Output: (0,9)
Input: (-3,4), (2,5), (-10,-4)
Output (-10,-4), (-3,5)
Input: (2,3), (5,6), (6,8)
Output: (5,8), (2,3)
규칙
- 이것은 code-golf 이므로 가장 짧은 답변 (바이트)이 이깁니다.
- 점수는 모든 솔루션의 바이트 수의 합계입니다.
- 표준 허점은 금지되어 있습니다.
- 언어의 표준으로 간주되는 방식으로 입력 및 출력을 수행 할 수 있습니다.
- 각 챌린지에 대한 전체 프로그램 또는 기능을 작성하고 두 챌린지간에 두 가지를 교환 할 수 있습니다.
- 모든 과제에 대해 동일한 언어를 사용해야합니다. 일반적으로 챌린지에서 별도의 항목으로 간주 될 수있을 정도로 버전 차이가 큰 경우 전체에서 동일한 버전을 사용해야합니다. 예를 들어 Python을 사용하는 경우 모든 과제에 Python 2 또는 Python 3을 사용해야합니다.
- 모든 과제를 해결해야합니다. 도전 과제 중 일부만 해결하는 답변은 경쟁이 아닌 것으로 간주됩니다.
- 언어 내장 또는 표준 라이브러리를 사용할 수 있습니다.
리더 보드
이 게시물의 하단에있는 스택 스 니펫은 답변 a) 언어별로 가장 짧은 솔루션 목록으로, b) 전체 리더 보드로 답변에서 리더 보드를 생성합니다.
답변이 표시되도록하려면 다음 마크 다운 템플릿을 사용하여 헤드 라인으로 답변을 시작하십시오.
## Language Name, N bytes
N
제출물의 크기는 어디에 있습니까 ? 당신이 당신의 점수를 향상시킬 경우에, 당신은 할 수 있습니다 를 통해 눈에 띄는에 의해, 헤드 라인에 오래된 점수를 유지한다. 예를 들어 :
## Ruby, <s>104</s> <s>101</s> 96 bytes
헤더에 여러 숫자를 포함하려는 경우 (예 : 점수가 두 파일의 합계이거나 인터프리터 플래그 페널티를 별도로 나열하려는 경우) 실제 점수가 헤더 의 마지막 숫자 인지 확인하십시오 .
## Perl, 43 + 2 (-p flag) = 45 bytes
언어 이름을 링크로 만들면 스 니펫에 표시됩니다.
## [><>](http://esolangs.org/wiki/Fish), 121 bytes