안녕하세요. 오늘은 코드잼을 풀어볼 거예요.
https://www.acmicpc.net/problem/12174
무조건 8글자씩 끊습니다.
그 다음에 I이면 1로 인식해서 1을 더해주는 방식으로 2진수를 10진수로 바꿔줍시다.
그대로 문자로 바꾼 다음에 출력합니다.
#include <iostream>
#include <string>
using namespace std;
char change(string s)
{
int ans = 0;
for (char c : s)
{
ans *= 2;
if (c == 'I') ans++;
}
return ans;
}
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
int T, N, TC = 0;
string s;
cin >> T;
while (T--)
{
cin >> N >> s;
string ans;
for (int i = 0; i < N; i++)
ans += change(s.substr(i * 8, 8));
cout << "Case #" << ++TC << ": " << ans << "\n";
}
}
감사합니다.