SlideShare a Scribd company logo
プログラマ脳を鍛える回
AtCoder Beginner Contest 006
1
スケジュール
問題回答A 10分
問題回答B 10分
問題回答C 20分
2
問題A
数字Nが与えられます。Nに3が含まれる、もしくは3で割り
切れる場合はYES、それ以外はNOと出⼒してください。
例 ⼊⼒ 出⼒
2
9
3
NO
YES
YES
3
次のスライドに解答例
4
問題A解答例
var test = '13';
function isIncluding3(num){
if(num.match(/3/)){
return true;
}else{
return false;
}
}
function isDivisible(num){
if(num % 3 == 0){
return true;
}else{
return false;
}
}
function check(num){
if(isIncluding3(num)){
return 'YES';
}else if(isDivisible(num)){
return 'YES';
}else{
return 'NO';
}
}
console.log(check(test));
5
問題B
フィボナッチ数列の仲間にトリボナッチ数列というものがあります。
この数列は3つ前までの数字を⾜したものです。
定義
トリボナッチ数列表
この数列の第n項、anを10007で割ったあまりを考えてください。
6
7
例
⼊⼒ 出⼒
7
1
100000
7
0
7927
ヒント
初めは純粋に任意のトリボナッチ数列を求めるプログラムを作成
しましょう。
以前取り組んだ問題のフィボナッチ数列が参考になると思います。
nが⼤きくなると桁あふれが起きてしまうと思います。
処理の⼿順を考えることで桁あふれを防ぐことができるので、考えてみて
ください。
8
次のスライドに解答例
9
問題B解答例
var test = 100000;
var count = test-3;
var a = b = 0;
var c = 1;
function tribonacci(){
if(count < 0){
return 0;
}
while(count > 0){
var d = (a+b+c)%10007;
a = b;
b = c;
c = d;
count--;
}
return c;
}
console.log(tribonacci());
//a,b,c 10007で割った合計がdになるので結局最後に10007で割るのと同じ 桁あふれを起こさないために使⽤
10
スフィンクスからの問題
スフィンクス「朝は四本⾜、昼は⼆本⾜、⼣は三本⾜。
この⽣き物は何か︖」
11
答え
⼈間
朝、昼、夜は⼈間の⼀⽣を1⽇に例えています。
夜が3本なのは⽼⼈を表していて、⽼⼈になると杖をつくので3本になるということで
す。
12
問題C
スフィンクス「この街には⼈間が N ⼈いる。⼈間は、⼤⼈、⽼⼈、⾚ちゃ
んの 3 通りだ。
この街にいる⼈間の、⾜の数の合計は M 本で、⼤⼈の⾜は 2 本、⽼⼈の
⾜は 3 本、⾚ちゃんの⾜は 4 本と仮定した場合、存在する⼈間の組み合わ
せとしてあり得るものを 1 つ答えよ。」
スフィンクスのなぞなぞの答えとなる「この街に存在する⼈間の組み合わ
せ」を1つ出⼒してください。
そのような組み合わせが存在しない場合はʼ-1 -1 -1ʼと出⼒してください
スフィンクスからなぞなぞを出されました。
13
例
⼊⼒ 出⼒
3 9
7 23
10 41
1 1 1
1 3 3
-1 -1 -1
14
次のスライドにあまり良くない解答例
15
16
var baby;
var adult;
var old;
var N = 7;
var M = 23;
function sphinx(){
//例にするために1にしているが0でも良いらしい
for(baby=1; baby<=N; baby++){
for(adult=1; adult<=(N-baby); adult++){
if(M == 2*adult+3*(N-(adult+baby))+4*baby){
old = N - (baby+adult);
return adult + " " + old + " " + baby;
}
}
}
return "-1 -1 -1";
}
console.log(sphinx());
あまり良くない解答例
17
for⽂などを使わずに答えを出すことができます。
ヒント
⼈間が最低何本の⾜を持っているか、合計の⾜の本数と
⼈間の⼈数の関係性を始めに考えてみると良いかも
しれません。
次のスライドに解答例
18
解答例
var babies;
var adults;
var olds;
var rest;
var N = 7;
var M = 23;
function sphinx(){
if (N * 2 > M || N * 4 < M) {
console.log("-1 -1 -1");
} else {
rest = M - N * 2;
babies = Math.floor(rest / 2);
olds = rest % 2;
adults = N - olds - babies;
console.log("%d %d %d", adults, olds, babies);
}
}
sphinx();
19
お疲れ様でした
20
AtCoder Beginner Contest 006(http://abc006.contest.atcoder.jp)を
参考にさせていただきました。

More Related Content

Viewers also liked

Barbara A Roehl Resume
Barbara A Roehl ResumeBarbara A Roehl Resume
Barbara A Roehl ResumeBarbara Roehl
 
Caixa trab social remunerado
Caixa trab social remuneradoCaixa trab social remunerado
Caixa trab social remuneradoJosé Marques
 
Spend wisely
Spend wiselySpend wisely
Spend wiselyAren Tang
 
Diploma Guide - Digital strategy sample chapter
Diploma Guide - Digital strategy sample chapterDiploma Guide - Digital strategy sample chapter
Diploma Guide - Digital strategy sample chapterCharlotte Lestienne
 
CPI Requerimento 68 - 08/09/09
CPI Requerimento 68 - 08/09/09CPI Requerimento 68 - 08/09/09
CPI Requerimento 68 - 08/09/09Alexandre Santos
 
History of the world vol 3 India and Buddha
History of the world vol 3 India and BuddhaHistory of the world vol 3 India and Buddha
History of the world vol 3 India and BuddhaKenichi Takeuchi
 
Gotinha De áGua
Gotinha De áGuaGotinha De áGua
Gotinha De áGuaCosta
 
Launch of talview talent insights
Launch of talview talent insightsLaunch of talview talent insights
Launch of talview talent insightsPavana KR
 
Almacenamiento de-productos-quimicos
Almacenamiento de-productos-quimicosAlmacenamiento de-productos-quimicos
Almacenamiento de-productos-quimicosRUBEN CASTRO LOBO
 
Vetorh®: software de gestão de recursos humanos
Vetorh®: software de gestão de recursos humanosVetorh®: software de gestão de recursos humanos
Vetorh®: software de gestão de recursos humanosAcecon Solutions
 

Viewers also liked (11)

Barbara A Roehl Resume
Barbara A Roehl ResumeBarbara A Roehl Resume
Barbara A Roehl Resume
 
Caixa trab social remunerado
Caixa trab social remuneradoCaixa trab social remunerado
Caixa trab social remunerado
 
Spend wisely
Spend wiselySpend wisely
Spend wisely
 
Diploma Guide - Digital strategy sample chapter
Diploma Guide - Digital strategy sample chapterDiploma Guide - Digital strategy sample chapter
Diploma Guide - Digital strategy sample chapter
 
CPI Requerimento 68 - 08/09/09
CPI Requerimento 68 - 08/09/09CPI Requerimento 68 - 08/09/09
CPI Requerimento 68 - 08/09/09
 
History of the world vol 3 India and Buddha
History of the world vol 3 India and BuddhaHistory of the world vol 3 India and Buddha
History of the world vol 3 India and Buddha
 
Gotinha De áGua
Gotinha De áGuaGotinha De áGua
Gotinha De áGua
 
Launch of talview talent insights
Launch of talview talent insightsLaunch of talview talent insights
Launch of talview talent insights
 
Almacenamiento de-productos-quimicos
Almacenamiento de-productos-quimicosAlmacenamiento de-productos-quimicos
Almacenamiento de-productos-quimicos
 
Vetorh®: software de gestão de recursos humanos
Vetorh®: software de gestão de recursos humanosVetorh®: software de gestão de recursos humanos
Vetorh®: software de gestão de recursos humanos
 
Matecak
MatecakMatecak
Matecak
 

Recently uploaded

エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料Toru Miyahara
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介miyp
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Toru Miyahara
 
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例Kurata Takeshi
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料Toru Miyahara
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上mizukami4
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubK Kinzal
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題についてMasatsugu Matsushita
 

Recently uploaded (8)

エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
 

At corder006