티스토리 뷰
굉장히 간단하다.
string으로 두가지 이진수 값을 받은 다음에,
각 자리마다 비교를 하여 해당하는 이진수 연산을 하면 된다.
이진수 덧셈이나 뺄셈이었으면 난이도가 지금같지 않았을텐데
for(int i = 0;i<a.Length;i++)
{ //A&B
if (a[i].Equals('1') && b[i].Equals('1'))
sb.Append("1");
else
sb.Append("0");
}
sb.AppendLine();
for(int i = 0; i<a.Length;i++)
{ //A|B
if (a[i].Equals('0') && b[i].Equals('0'))
sb.Append("0");
else
sb.Append("1");
}
sb.AppendLine();
for (int i = 0; i < a.Length; i++)
{ //A^B
if (a[i] == b[i])
sb.Append("0");
else
sb.Append("1");
}
sb.AppendLine();
for (int i = 0; i < a.Length; i++)
{ //~A
if (a[i].Equals('1'))
sb.Append('0');
else
sb.Append("1");
}
sb.AppendLine();
for (int i = 0; i < a.Length; i++)
{ //~B
if (b[i].Equals('1'))
sb.Append("0");
else
sb.Append("1");
}
sb.AppendLine();
Console.WriteLine(sb);
}
string 비교는 여러모로 int 비교랑은 성능차가 큰데,
차라리 문자열의 한 부분을 명시적 변환으로 int로 바꾼다음 5가지 연산에 대해 int 비교를 하고, 각자 다른 string에 연산 결과를 한자리씩 추가한후, 반복문이 끝나면(계산이 끝다면) 5가지의 string 값을 Appendline 하는게 훨씬 효율적일 것이다.
하지만 string이 5개라서 메모리 초과가 떴다 ㅠㅠ
'■ 알고리즘 > ◻ 백준' 카테고리의 다른 글
[C#]백준 2908번 : 상수 (0) | 2018.08.13 |
---|---|
[C#]백준 1159번 : 농구 경기 (0) | 2018.08.13 |
[C#]백준 1076번 : 저항 (0) | 2018.08.10 |
[C#]백준 10866번 : 덱 (0) | 2018.08.10 |
백준 할때 자주 찾는 메소드 (0) | 2018.08.10 |