夢追い人

"It takes a dreamer to make a dream come true."―Vincent Willem van Gogh

久しぶりの過去問(?)

なんかちょいと昨日C#で書いてたような…

ともかく今日もEasy。
Mediumもやろうと思ったけど時間的に・・・

446 Div.2 Easy

class SoldierLabeling {
   public:
   int count(int n, int lowerBound, int upperBound)
  {
	int lower = (int)pow(10.0, lowerBound-1)-1; int upper = (int)pow(10.0, upperBound)-1;
	lower=min(n,lower); upper=min(n,upper);
//	cout << lower << " " << upper << endl;
	return upper-lower;
  }
}

解説省略。

とりあえずC#で解いたやつも載せておこう。

SimpleCalculator

public class SimpleCalculator {
    public int calculate(string input) {
        int res = 0;
        int index = input.IndexOfAny(new char[] {'+', '-', '*', '/'});
        int n1 = int.Parse(input.Substring(0, index));
        int n2 = int.Parse(input.Substring(index+1));
        switch(input[index]){
            case '+':
                res = n1+n2;
                break;
            case '-':
                res = n1-n2;
                break;
            case '*':
                res = n1*n2;
                break;
            case '/':
                res = n1/n2;
                break;
        }
        return res;
    }
}

OnLineRank

public class OnLineRank {
    public int calcRanks(int k, int[] scores) {
        int res = 1;
        if (scores.Length < k) k = scores.Length;
        for (int i = 1; i < scores.Length; i++)
        {
            int tmp = scores[i];
            int rank = 1;
            for (int j = i - 1; j >= i - k && j >= 0; j--)
            {
                if (tmp < scores[j]) rank++;
            }
            res += rank;
        }
        return res;
    }
}

HuffmanDecoding

public class HuffmanDecoding
    {
        public string decode(string archive, string[] dictionary)
        {
            string res = "";
            string tmp = "";
            bool flag = false;
            for (int i = 0; i < archive.Length; i++)
            {
                tmp += archive[i];
                for (int j = 0; j < dictionary.Length; j++)
                {
                    if (tmp == dictionary[j])
                    {
                        res += (char)('A' + j);
                        flag = true;
                        break;
                    }
                }
                if (flag)
                {
                    tmp = "";
                    flag = false;
                }
            }
            return res;
        }
}

CheckFunction

public class CheckFunction {
	public int newFunction(string code) {
		int ans = 0;
        for (int i=0;i<code.Length;i++){
            switch(code[i]) {
                case '0':
                    ans += 6;
                    break;
                case '1':
                    ans += 2;
                    break;
                case '2':
                    ans += 5;
                    break;
                case '3':
                    ans += 5;
                    break;
                case '4':
                    ans += 4;
                    break;
                case '5':
                    ans += 5;
                    break;
                case '6':
                    ans += 6;
                    break;
                case '7':
                    ans += 3;
                    break;
                case '8':
                    ans += 7;
                    break;
                case '9':
                    ans += 6;
                    break;
            }
        }
        return ans;
	}
}

全部通ってるはず。

親に起こられたので寝ます。