0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AtCoderログ:0011 - ABC 095 A

Last updated at Posted at 2021-07-08

問題

問題文

ラーメン店「高橋屋」のラーメンの値段は $1$ 杯 $700$ 円ですが、トッピング(味玉、チャーシュー、ねぎ)を乗せた場合は $1$ 種類につき $100$ 円が加算されます。
ある客がラーメンを一杯注文し、店員にトッピングの希望を伝えました。店員は注文の内容をメモ帳に文字列 $S$ として記録しました。$S$ の長さは $3$ 文字で、$S$ の $1$ 文字目が o のとき客のラーメンに味玉を乗せることを、x のとき味玉を乗せないことを表します。同様に、$S$ の $2$ 文字目、$3$ 文字目はそれぞれチャーシュー、ねぎの有無を表します。
$S$ が入力されると、対応するラーメンの値段を出力するプログラムを書いてください。

制約

・$S$ は長さ $3$ の文字列である。
・$S$ の各文字は o または x である。

収録されている問題セット

回答

回答1 (AC)

注文 $S$ を文字列 s として受け取り、合計金額を表す price に対し、s の各文字にあわせてトッピングの金額を加算するという方針でコーディングしました。

abc095a-1.cpp
#include <bits/stdc++.h>
using namespace std;
 
int main() {
  string s;
  cin >> s;
 
  int price = 700;
  for ( int i=0; i<3; i++ ) {
    if ( s.at(i)=='o' ) {
      price += 100;
    }
  }
  cout << price << endl;
}

回答2 (AC)

A 問題は for 文を使わずに解けるとのことなので、
for 文を使わないコードも作成してみました。

abc095a-2.cpp
#include <bits/stdc++.h>
using namespace std;
 
int main() {
  string s;
  cin >> s;
 
  if ( s=="ooo" ) {
    cout << 1000 << endl;
  } else if ( s=="xoo" || s=="oxo" || s=="oox" ) {
    cout << 900 << endl;
  } else if ( s=="oxx" || s=="xox" || s=="xxo" ) {
    cout << 800 << endl;
  } else {
    cout << 700 << endl;
  }
}

調べたこと

AtCoder の解説コンテスト全体の解説

回答1に近い方法が紹介されていました。

リンク

前後の記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?