考えて競プロする

プログラミングコンテストの問題をどう考えて解いたかを記録していくブログです。使用言語はPython3

ABC012-B - 入浴時間 を解く

ABC012-B - 入浴時間

 

秒数が与えられるのでそれを hh : mm : ss の形式に直す問題 

 

何時間かは3600で割れば出るし

何分かは60で割れば出る

難しいことはない

 

提出したコード

# 入力
N=int(input())

# 何時間か求める
hh=N//3600
N-=hh*3600

# 何分か求める
mm=N//60
N-=mm*60

# 時間・分を除いた残りが秒数
ss=N

# 出力
print(str(hh).zfill(2)+':'
  +str(mm).zfill(2)+':'
  +str(ss).zfill(2))
 
考察がシンプルだった割には
色々注意する部分があることに実装しながら気づいた
 
時間を求めた後、分を求める前に時間分の秒数を引いておく必要がある
そうしなければ正しい分・秒を求めることができないため
 
また割り算には "//" 演算子を使用している
これを使用することで整数同士の割り算の計算結果を整数で得ることができる
 
最後に、計算結果は int型 だが "hh:mm:ss" の形にフォーマットして
出力するために str() を使用してstr型にキャストしている
str型に変換することで "+" を使った文字列結合が可能となる
 
 
提出結果はAC
解説スライドを見たところ
入力値から一発で出力値を導出できる関数が用意されている言語もあるらしい
 
…ってことはPythonもどうせあるんだろうな〜
興味ある方は調べてみてください