公式
A - Hell, World! 解説
by
A - Hell, World! 解説
by
sounansya
AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題 A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
この問題は文字列 HelloWorld の \(X\) 文字目を削除することで解くことができます。
文字列の \(X\) 文字目を削除する方法は色々ありますが、for 文と if 文を使うと以下のように作ることができます:
- \(S=\)
HelloWorld、\(T\) を空文字列とする。 - \(i=1,2,\ldots,10\) の順に以下を行う:
- \(i\neq X\) ならば \(T\) の末尾に \(S_i\) を連結する。
- \(T\) が求める答えである。
このように \(T\) を作っていくと、\(S\) の \(X\) 文字目だけ飛ばされるので結果として HelloWorld の \(X\) 文字目のみを削除した文字列が得られます。
他にも、例えば C++ であれば文字列 \(S\) に対し S.erase(S.begin() + x) とすることで \(S\) の \(x\) 文字目(ただし 0-indexed)を削除することができ、そのような方法を使っても正解を得ることができます。
x = int(input()) - 1
s = "HelloWorld"
t = ""
for i in range(10):
if i != x:
t += s[i]
print(t)
#include <bits/stdc++.h>
using namespace std;
int main() {
int x;
cin >> x;
x--;
string s = "HelloWorld";
s.erase(s.begin() + x);
cout << s << endl;
return 0;
}
投稿日時:
最終更新:
