Google 에서 무언가를 검색 하면 페이지 상단에 다음과 같은 메시지가 편리하게 표시 About 53,000,000 results (0.22 seconds)
됩니다. (물론 검색 한 내용에 따라 숫자가 변경됩니다.)
이 과제에서는 주어진 검색 구문 의 비어 있지 않은 접두사 를 모두 검색 할 때 Google이 제공 한 결과 수의 로그 ASCII 그래프 를 그리는 프로그램을 작성합니다 .
검색 구문은 서로 하나 개의 공간으로 구분 소문자의 영숫자 하나 개 이상의 스트링으로 정의한다. 정규식에서 검색어는 (?:[a-z0-9]+ )*[a-z0-9]+
입니다.
그래서 im ok
, r
및 1a 2
모든 검색 문구가 있지만 I'm OK
, R
, 1a 2
,과 , 수 없습니다.
(Google에서 대소 문자 나 특수 기호를 거의 사용하지 않기 때문에 문자 제한이 적용됩니다. URL에서 영숫자가 아닌 문자를 피하는 것도 번거 롭습니다.)
투기
프로그램은 stdin 또는 명령 행에서 검색 구와 양의 부동 소수점 숫자 H를 사용해야합니다. (검색어 주위에 따옴표 나 무언가가 필요한 경우에는 유효하며 괜찮습니다.)
실제 예로 검색 구문이 a car
H = 0.75 라고 가정 해 봅시다 .
1 단계 :
검색 구문의 비어 있지 않은 접두사를 모아 큰 따옴표로 묶습니다 . 인용 부호는 정확한 단어를 검색하여 '당신이 의미 한 바를 ...' 재지 정하지 않도록합니다 .
와 같은 공백으로 끝나는 모든 접두사를 제외하십시오 a[space]
.
Prefixes
"a"
"a c"
"a ca"
"a car"
2 단계 : https://www.google.com을
사용하여 나타나는 각 용어를 정확하게 검색 하고 반환되는 결과 수를 기록합니다.
Search Term Message Results
"a" About 6,950,000,000 results (0.27 seconds) 6950000000
"a c" About 861,000,000 results (0.27 seconds) 861000000
"a ca" About 2,990,000 results (0.30 seconds) 2990000
"a car" About 53,900,000 results (0.39 seconds) 53900000
검색어 가 문서와 일치하지 않으면Results
열에 0을 입력하십시오 .
3 단계 : 각 행에 대해
계산 합니다. y = floor(H * log10(r + 1))
여기서 r은 Results
값입니다. H는 여전히 0.75입니다.
Search Term Results y
"a" 6950000000 7
"a c" 861000000 6
"a ca" 2990000 4
"a car" 53900000 5
단계 4 :
정렬 y
수직 막대 (수 |
막대 그래프의 일종으로, 빈 공간을 채우기 위해 공간을 이용하여, 각각의 인용되지 않은 검색어의 마지막 문자 위).
|
| |
| | |
| |||
| |||
| |||
| |||
a car
이 그래프는 프로그램의 최종 결과이며 출력해야하는 유일한 것입니다. stdout에 가야합니다.
채점
이것은 코드 골프바이트 단위 의 가장 짧은 프로그램 이 승리합니다.
노트
- 결과가 https://www.google.com 을 검색하는 것과 동일한 경우 URL 단축기 또는 기타 검색 도구 / API를 사용할 수 있습니다 .
- 큰 따옴표는 "직접 ..."리디렉션을 배제 하는 확실한 방법 이 아닙니다 .
&nfpr=1
URL에 추가 해도 항상 작동하지는 않습니다 . 이러한 부정확성에 대해 걱정하지 마십시오.About X results...
팝업 메시지에 관계없이 메시지를 찾 거나Results
없는 경우 0으로 설정하십시오 . - 그래프의 검색 구에서 공백 위에 빈 열이 있습니다.
- 그래프는 필요 이상으로 넓거나 크지 않아야합니다 (예 : 공백).
- 프로그램에 웹 브라우저를 여는 것과 같은 부작용이있어 암호화 된 Google html / js 페이지를 렌더링 할 때 읽을 수 있습니다.