[백준 21665] Миша и негатив (C#, C++) - soo:bak
작성일 :
문제 링크
설명
네거티브 변환에서 뒤집히지 않은 픽셀의 개수를 구하는 문제입니다.
접근법
네거티브는 B와 W를 서로 뒤집어야 합니다.
원본과 결과 이미지를 같은 위치끼리 비교하여, 값이 같다면 뒤집힘이 일어나지 않은 오류입니다.
모든 픽셀을 검사하여 오류 개수를 세면 됩니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
class Program {
static void Main() {
var line = Console.ReadLine()!.Split();
var n = int.Parse(line[0]);
var m = int.Parse(line[1]);
var orig = new string[n];
for (var i = 0; i < n; i++)
orig[i] = Console.ReadLine()!;
Console.ReadLine();
var neg = new string[n];
for (var i = 0; i < n; i++)
neg[i] = Console.ReadLine()!;
var err = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (orig[i][j] == neg[i][j]) err++;
}
}
Console.WriteLine(err);
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m; cin >> n >> m;
vector<string> orig(n), neg(n);
for (int i = 0; i < n; i++)
cin >> orig[i];
string blank; getline(cin, blank);
getline(cin, blank);
for (int i = 0; i < n; i++)
cin >> neg[i];
int err = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (orig[i][j] == neg[i][j]) err++;
}
}
cout << err << "\n";
return 0;
}