본문 바로가기

알고리즘 · 코딩

[SWEA 1240] 단순 2진 암호코드

SWEA 1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드

 

문제 링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15FZuqAL4CFAYD 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


C++ 풀이

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
	int T, N, M;
	cin >> T;
	for (int tc = 1; tc <= T; ++tc) {
		cin >> N >> M;
		char line[100];
		char code[56];
		bool found_line = false;
		for (int i = 0; i < N; ++i) {
			for (int j = 0; j < M; ++j) {
				cin >> line[j];
				if (line[j] == '1' && !found_line)
					found_line = true;
			}
			if (found_line) {
				for (int k = M - 1; k >= 0; --k) {
					if (line[k] == '1') {
						copy(line + k - 55, line + k + 1, code);
						break;
					}
				}
			}
		}
		int code_sum[8];
		bool wrong_code = false;
		for (int i = 0; i < 8; ++i) {
			string code_string = { code[i * 7 + 1], code[i * 7 + 2], code[i * 7 + 3], code[i * 7 + 4], code[i * 7 + 5], code[i * 7 + 6] };
			if (code_string == "001101")
				code_sum[i] = 0;
			else if (code_string == "011001")
				code_sum[i] = 1;
			else if (code_string == "010011")
				code_sum[i] = 2;
			else if (code_string == "111101")
				code_sum[i] = 3;
			else if (code_string == "100011")
				code_sum[i] = 4;
			else if (code_string == "110001")
				code_sum[i] = 5;
			else if (code_string == "101111")
				code_sum[i] = 6;
			else if (code_string == "111011")
				code_sum[i] = 7;
			else if (code_string == "110111")
				code_sum[i] = 8;
			else if (code_string == "001011")
				code_sum[i] = 9;
			else
				wrong_code = true;
		}
		if (!wrong_code && ((code_sum[0] + code_sum[2] + code_sum[4] + code_sum[6]) * 3 + code_sum[1] + code_sum[3] + code_sum[5] + code_sum[7]) % 10 == 0)
			cout << "#" << tc << " " << code_sum[0] + code_sum[1] + code_sum[2] + code_sum[3] + code_sum[4] + code_sum[5] + code_sum[6] + code_sum[7] << endl;
		else
			cout << "#" << tc << " " << 0 << endl;

	}
	return 0;
}

문제 이해가 좀 까다롭다.

 

 

LIST

'알고리즘 · 코딩' 카테고리의 다른 글

[SWEA 1266] 소수 완제품 확률  (0) 2021.10.19
[SWEA 1206] View  (0) 2021.10.18
[백준 2606번] 바이러스  (0) 2021.10.15
[SWEA 1983] 조교의 성적 매기기  (0) 2021.10.11
[프로그래머스] 최소 직사각형  (0) 2021.10.08