반응형
백준 [단계별로 풀어보기]: (8단계) "일반 수학 1", python
1. 문제번호 및 정답비율

2. 문제별 필요 지식 및 풀이 포인트
더보기
# 1. 2745 진법 변환
int(n, b) : b진법의 수 n을 10진법으로 표현
num_list = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
# 2. 11005 진법 변환2
list[::-1] : 리스트 뒤집기
# 3. 2720 세탁소 시장 동혁
다른 사람 풀이도 참고
# 4. 2903 중앙 이동 알고리즘
# 5. 2292 벌집
점화식 생각 도출해내기 : 1, 1+6=7, 1+6+12=7+12=19, 1+6+12+18=19+18=37, ... : an =1; an += 6*n
# 6. 1193 분수찾기
다시 풀기, 어려움
# 7. 2869 달팽이는 올라가고 싶다
day = a-b #하루에 갈 수 있는 거리, 1
heights = v-b #올라가야 할 거리, 4
3. 문제별 풀이 코드
# 1. 2745 진법 변환
'''int(n, b) = b진법의 수 n을 10진법으로 표현'''
n, b = input().split()
print(int(n, int(b))) #int(zzzzz, 36) = 36진법의 수 zzzzz를 10진법으로 바꿔줌
'''일반적풀이'''
num_list = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" # 0부터Z까지 포함된 문자열을 활용, 이 문자열의 index가 값이 된다.
n, b = input().split() #n에 대문자 입력, b진법수 n
n = n[::-1] # list[::-1]: 리스트순서뒤집기
b = int(b) # input값 int변환
result = 0
for i in range(len(n)):
result += b**i * num_list.index(n[i])
print(result)
# 2. 11005 진법 변환2
'''ex)256%10 = 6, 256 <= 25(초기화)
25%10 = 5, 25 <= 2(초기화)
2%10 = 2
652 -> 뒤집기 -> 256'''
n, b = map(int, input().split()) #60466175 36
num_list = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
result = ""
while n != 0:
result += num_list[n%b] #b로 나눈 나머지값 연결
n //= b #n값 초기화
print(result[::-1])
# 3. 2720 세탁소 시장 동혁
'''출력 관련해서, 다른 풀이도 참고'''
t = int(input()) #3
prices = [int(input()) for _ in range(t)] #124 25 194
array = [25, 10, 5, 1] #동전 종류
cnt = []
for i in range(t):
for coin in array:
cnt.append(prices[i] // coin)
prices[i] %= coin #124//25 후 나머지 24를 초기화
#print(cnt) #[4, 2, 0, 4, 1, 0, 0, 0, 7, 1, 1, 4]
print(*cnt, end=' ') #4 2 0 4 1 0 0 0 7 1 1 4 / *args와 **kwargs이용
# 4. 2903 중앙 이동 알고리즘
'''점의개수: 2x2=4=2**2, 3x3=9=3**2, 5x5=25=5**2'''
n = int(input())
print((2**n+1)**2)
# 5. 2292 벌집
#1, 1+6=7, 1+6+12=7+12=19, 1+6+12+18=19+18=37, ... : an =1; an += 6*n
routes = int(input()) #13
an = 1; nums = 1
while routes > an: #point! 입력값 > 점화식 이면, +1 해 출력한다
an += 6*nums
nums += 1
print(nums) #3
# 6. 1193 분수찾기
'''다시 풀기/어려움'''
1+2+3+4+5+6+...
line
1 1/1
2 1/2 2/1 : +1/-1꼴
3 3/1 2/2 1/3
4 1/4 2/3 3/2 4/1 : +1/-1꼴
5 5/1 4/2 3/3 2/4 1/5 ...
num = int(input()) #4
line = 1
if line%2 == 0:
a =
b =
else:
print(a + '/' + b)
# 7. 2869 달팽이는 올라가고 싶다
a, b, v = map(int, input().split()) #2 1 5
day = a-b #하루에 갈 수 있는 거리, 1
heights = v-b #올라가야 할 거리, 4
if heights%day == 0: #나머지가 0이면, 낮동안 정상 도달
print(heights//day)
else: #나머지가 0이 아니면, 밤에 미끄러져서 하루+1해야
print(heights//day+1)반응형
'PS > BOJ : 단계별로 풀어보기' 카테고리의 다른 글
| 백준 [단계별로 풀어보기]: (10단계) "기하: 직사각형과 삼각형", python (3) | 2024.09.01 |
|---|---|
| 백준 [단계별로 풀어보기]: (9단계) "약수, 배수와 소수", python (0) | 2024.09.01 |
| 백준 [단계별로 풀어보기]: (7단계) "2차원 배열", python (2) | 2024.08.23 |
| 백준 [단계별로 풀어보기]: (6단계) "심화 1", python (2) | 2024.08.22 |
| 백준 [단계별로 풀어보기]: (5단계) "문자열", python (0) | 2024.08.20 |