백준 단계별로 풀어보기 정답 모아보기 - 일반 수학
2745 - 진법 변환
Z까지 35라면 0부터 시작해서 Z까지 index
의 값과 동일하다. 그것을 생각하면 짧게 코드를 작성할 수 있다
1
2
3
4
5
6
7
8
9
10
| base = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
N, B = input().split(" ")
total = 0
fact = 1
for i in range(0, len(N)):
total += base.index(N[len(N) - i - 1]) * fact
fact = fact * int(B)
print(total)
|
11005 - 진법 변환 2
1
2
3
4
5
6
7
8
9
10
11
12
13
| base = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
N, B = map(int, input().split(" "))
result = []
if N == 0:
result.append(0)
while N > 0:
result.append(base[N % B])
N //= B
result = "".join(result)
print(result[::-1])
|
2720 - 세탁소 사장 동혁
1
2
3
4
5
6
7
8
9
10
11
12
| coin = [25, 10, 5, 1]
T = int(input())
for _ in range(T):
cent = int(input())
count = []
for i in range(len(coin)):
count.append(cent // coin[i])
cent %= coin[i]
for i in range(len(count)):
print(f"{count[i]} ", end="")
|
2903 - 중앙 이동 알고리즘
1
2
3
4
5
6
7
8
| # 1번 증가할 때마다 한 변의 점의 갯수는 x*2-1
dot = 2 # 초기 상태의 한 변의 점의 갯수
N = int(input())
for i in range(1, N + 1):
dot = dot * 2 - 1
print(dot**2)
|
2292 - 벌집
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| # 1, 6, 12, 18, 24
# 1, 7, 19, 37, 61
N = int(input())
count = []
honeycomb = 1
temp = 0
while honeycomb < N:
honeycomb += temp
temp += 6
count.append(honeycomb)
if N == 1:
print(1)
else:
print(len(count))
|
1193 - 분수찾기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| N = int(input())
count = 0
temp = 0
while temp < N:
count += 1
temp += count
temp -= N
# 홀수일때는 올라가고 짝수일때는 내려가고
arr = []
for i in range(count, 0, -1):
arr.append((i, count - i + 1))
if count % 2 == 0:
print(f"{arr[temp][0]}/{arr[temp][1]}")
else:
print(f"{arr[len(arr) - (temp + 1)][0]}/{arr[len(arr)-(temp+1)][1]}")
|
2869 - 달팽이는 올라가고 싶다
1
2
| A, B, V = map(int, input().split(" "))
print(((V - A) - 1) // (A - B) + 2)
|
댓글남기기