12813번: 이진수 연산백준/문제2024. 3. 4. 14:43
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/12813
언어 : Kotlin
문제 설명 :
총 100,000 비트로 이루어진 이진수 A와 B가 주어진다. 이때, A & B, A | B, A ^ B, ~A, ~B를 한 값을 출력하는 프로그램을 작성하시오.
입력 :
첫째 줄에 이진수 A, 둘째 줄에 이진수 B가 주어진다. 두 이진수의 길이는 모두 100,000이다. 예제의 경우에만 길이가 10이며, 예제는 채점하지 않는다.
출력 :
첫째 줄부터 한 줄에 하나씩 차례대로 A & B, A | B, A ^ B, ~A, ~B를 출력한다.
제한 사항 :
- 시간 제한 : 2초
- 메모리 제한 : 512MB
입출력 예 :
입력 | 출력 |
0001011000 0000101111 |
0000001000 0001111111 0001110111 1110100111 1111010000 |
풀이 :
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val a = readLine().chunked(1)
val b = readLine().chunked(1)
val sb = StringBuilder()
for (i in a.indices) {
sb.append(Integer.parseInt(a[i]) and Integer.parseInt(b[i]))
}
sb.appendLine()
for (i in a.indices) {
sb.append(Integer.parseInt(a[i]) or Integer.parseInt(b[i]))
}
sb.appendLine()
for (i in a.indices) {
sb.append(Integer.parseInt(a[i]) xor Integer.parseInt(b[i]))
}
sb.appendLine()
for (i in a.indices) {
sb.append(Integer.parseInt(a[i]) xor 1)
}
sb.appendLine()
for (i in a.indices) {
sb.append(Integer.parseInt(b[i]) xor 1)
}
bw.write(sb.toString())
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
13163번: 닉네임에 갓 붙이기 (0) | 2024.03.05 |
---|---|
2800번: 괄호 제거 (0) | 2024.03.04 |
1718번: 암호 (0) | 2024.03.04 |
1864번: 문어 숫자 (0) | 2024.03.01 |
3613번: Java vs C++ (0) | 2024.03.01 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!