Skip to content

Commit 99c975b

Browse files
committed
2026년 03월 27일 10:44:27
1 parent f0913f4 commit 99c975b

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# [3206] 보수 역 읽기
2+
### 채점 결과
3+
Accepted
4+
### 제출 일자
5+
2026년 03월 27일 10:44:27
6+
### 성능 요약[추후 구현 예정]
7+
- 메모리: N/A KB
8+
- 시간: N/A ms
9+
---
10+
### 문제 링크
11+
https://code.pusan.ac.kr/problem/3206
12+
### 난이도
13+
보통
14+
### 문제 설명
15+
컴퓨터에서 뺄셈을 효과적으로 계산하기 위해 보수 개념을 사용한다.여기서 재미난 방법을 생각해 보자.입력된 10진수의 수를 2진수로 변환한 후 1의 보수를 구한 다음,그 수를 그대로 읽어서 10진수로 그대로 출력하는 것이 아니라 그 보수를 뒤로부터 읽었을 때의 값을 10진수로 출력하는 것이다.예를 들어, 10진수 37을 2진수로 변환하면 100101이 된다.이 수의 1의 보수, 즉 0은 1로, 1은 0으로 변환하면 011010이 된다.이 수를 뒤로부터 읽게 되면 010110이 된다. 마지막으로 010110의 10진수는 22가 된다.[표] 변환과정(1) 문제 제시10진수인 정수를 입력하였을 때 1의 보수를 구하고,2진수로 표현했을 때 변환된 2진수를 역으로 읽는 프로그램을 작성하여 입력한 정수의 결과를 출력하라.(2) 제약 사항입력 값 N은 10 ≤ N ≤ 100을 만족하는 자연수이다. 총 테스트케이스는 5 ≤ T≤ 10개이다.
16+
### 입력
17+
첫째 줄은 테스트케이스 T을 입력한다. (3≤T≤ 10).둘째 줄 이후는 임의의 자연수를 입력한다.
18+
### 출력
19+
입력된 자연수에 대한 테스트케이스만큼, 1의 보수를 계산한 후 역으로 읽었을 때의 결과를 10진수로 출력한다.
20+
### 예제 입력/출력
21+
**예제 입력 1**
22+
```
23+
3
24+
37
25+
54
26+
27
27+
```
28+
**예제 출력 1**
29+
```
30+
22
31+
36
32+
4
33+
```
34+
### 제약 사항
35+
- 시간 제한 1000ms
36+
- 메모리 제한 256mb
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
N = int(input())
2+
3+
for _ in range(N):
4+
M = int(input())
5+
A = bin(M)[2:]
6+
res = ""
7+
for i in A:
8+
if i == "0":
9+
res += '1'
10+
else:
11+
res += '0'
12+
res = "0b" + res[::-1]
13+
print(int(res, 2))

0 commit comments

Comments
 (0)